ホームページ > データベース > mysql チュートリアル > MySQL データを 5 分間隔にグループ化するには?

MySQL データを 5 分間隔にグループ化するには?

Barbara Streisand
リリース: 2025-01-15 11:26:45
オリジナル
287 人が閲覧しました

How to Group MySQL Data into 5-Minute Intervals?

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 つの重要な変更が含まれています:

  1. タイムスタンプを抽出し、最も近い 5 分間隔 (300 秒) に丸め、FROM_UNIXTIME(UNIX_TIMESTAMP(timestamp) DIV 300 * 300) を使用してタイムスタンプに変換します。 (MySQL はこの方法を使用します。PostgreSQL の方法は MySQL には適用できません)
  2. 丸められたタイムスタンプ値 (UNIX_TIMESTAMP(timestamp) DIV 300) と名前によってデータをグループ化し、各 5 分間隔が個別のグループとして扱われるようにします。

結果:

これらの変更により、クエリは目的の出力を生成します。結果は 5 分間隔でグループ化され、各間隔にはその間隔内の「John」の合計出現数が表示されます。

以上がMySQL データを 5 分間隔にグループ化するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート