5 分間隔でグループ化された MySQL データ
この記事では、MySQL クエリの問題、つまり特定の時間範囲内で 5 分間隔でデータをグループ化し、各間隔の集計結果を別の行として表示する方法を解決します。
MySQL クエリの改善
これは、PostgreSQL または MySQL 構文を使用してクエリを簡単に変更することで実現できます。
PostgreSQL:
<code class="language-sql">SELECT TIMESTAMP WITH TIME ZONE 'epoch' + INTERVAL '1 second' * round(extract('epoch' from timestamp) / 300) * 300 as timestamp, name, count(b.name) FROM time a, id WHERE … GROUP BY round(extract('epoch' from timestamp) / 300), name</code>
MySQL:
<code class="language-sql">SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(timestamp) DIV 300 * 300) as timestamp, name, COUNT(b.name) FROM time a, id WHERE … GROUP BY UNIX_TIMESTAMP(timestamp) DIV 300, name</code>
説明:
改訂されたクエリには 2 つの重要な変更が含まれています:
FROM_UNIXTIME(UNIX_TIMESTAMP(timestamp) DIV 300 * 300)
を使用してタイムスタンプに変換します。 (MySQL はこの方法を使用します。PostgreSQL の方法は MySQL には適用できません)UNIX_TIMESTAMP(timestamp) DIV 300
) と名前によってデータをグループ化し、各 5 分間隔が個別のグループとして扱われるようにします。 結果:
これらの変更により、クエリは目的の出力を生成します。結果は 5 分間隔でグループ化され、各間隔にはその間隔内の「John」の合計出現数が表示されます。
以上がMySQL データを 5 分間隔にグループ化するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。