時間ベースのデータの集計
MySQL の GROUP BY 句を使用すると、特定の間隔または時間セグメントにわたるデータを集計できます。これは、タイムスタンプ付きのデータを扱う場合に特に便利で、目的の時間範囲にわたるデータを効果的に要約して分析できるようになります。
これを実現するには、MySQL が日付と時刻を表すために Unix タイムスタンプを使用するという事実を利用できます。内部的に。 Unix タイムスタンプを希望の間隔 (10 秒や 30 秒など) で分割することで、データを特定の時間セグメントにグループ化できます。
GROUP BY を使用して「時間セグメント」でグループ化するための構文は次のとおりです。
GROUP BY UNIX_TIMESTAMP(time_stamp) DIV <interval>
ここで 目的の時間セグメントを秒単位で指定します。例:
10 秒間隔:
GROUP BY UNIX_TIMESTAMP(time_stamp) DIV 10
30 秒間隔:
GROUP BY UNIX_TIMESTAMP(time_stamp) DIV 30
このアプローチを使用すると、これらの特定の時間セグメント内のデータを簡単に集計できます。各セグメントの count 列の合計を計算するには、次のクエリを使用できます。
SELECT UNIX_TIMESTAMP(time_stamp) DIV <interval> AS time_segment, SUM(count) AS total_count FROM table_name GROUP BY time_segment
たとえば、10 秒間隔のカウント値の合計を取得するには、次のクエリを使用します。
SELECT UNIX_TIMESTAMP(time_stamp) DIV 10 AS time_segment, SUM(count) AS total_count FROM table_name GROUP BY time_segment
これにより、指定した目的の結果と同様の出力が生成されます。
time_segment | total_count |
---|---|
2010-06-15 23:35:00 | 1 |
2010-06-15 23:35:30 | 7544 |
2010-06-17 10:39:35 | 450 |
次の点に注意することが重要です。 time_segment の結果は Unix タイムスタンプであり、各セグメントの開始を表します。 「2010-06-15 23:35:00 ~ 2010-06-15 23:35:30」など、より使いやすい形式で時間セグメントを表示するには、クエリで追加の文字列形式を使用できます。
の値を調整することで、したがって、時間ベースのデータを任意の時間セグメントにグループ化および集計して、特定の期間のデータを効果的に分析できます。
以上がGROUP BY 句を使用して特定の時間間隔で MySQL の時間ベースのデータを集計するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。