ホームページ >データベース >mysql チュートリアル >MySQL で時系列データを 10 秒、30 秒、またはその他の間隔でグループ化するにはどうすればよいですか?

MySQL で時系列データを 10 秒、30 秒、またはその他の間隔でグループ化するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-03 20:34:41280ブラウズ

How Can I Group Time-Series Data in MySQL by 10-Second, 30-Second, or Other Intervals?

SELECT / GROUP BY - 時間のセグメント (10 秒、30 秒など)

MySQL では、集計されたデータを取得することができます。 SELECT 句と GROUP BY 句を使用して、時間間隔に基づいてテーブルからデータを取得します。 time_stamp と count という 2 つの関連する列を持つ、n 秒ごとのサンプルを記録するテーブルがあるシナリオを考えてみましょう。

特定の時間間隔でグループ化された count 列の合計または平均を取得するには、次の手順に従います。

  1. UNIX_TIMESTAMP を使用して time_stamp 列を UNIX タイムスタンプに変換しますfunction.
  2. タイムスタンプを希望の間隔で除算します。たとえば、10 秒間隔でグループ化するには: UNIX_TIMESTAMP(time_stamp) DIV 10.
  3. 次のクエリに示すように、手順 2 の結果を GROUP BY 句のグループ化基準として使用します。

    SELECT UNIX_TIMESTAMP(time_stamp) DIV 10, SUM(count)
    FROM table
    GROUP BY UNIX_TIMESTAMP(time_stamp) DIV 10;

このクエリはデータをグループ化します。 10 秒間隔。各間隔内のカウント値を合計します。

  1. 必要に応じて、タイムスタンプにオフセットを追加して間隔間の境界を調整します。たとえば、hh:mm:05 から hh:mm:35 までの間隔でグループ化するには、次を使用します。

    GROUP BY (UNIX_TIMESTAMP(time_stamp) + 5) DIV 10

GROUP BY 関数と UNIX_TIMESTAMP 関数を活用すると、効率的に集計できます。さまざまな時間セグメントに基づいた時系列テーブルのデータにより、時間の経過に伴うパターンと傾向についての洞察が得られます。

以上がMySQL で時系列データを 10 秒、30 秒、またはその他の間隔でグループ化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。