首頁 >資料庫 >mysql教程 >如何在 MySQL 中以 10 秒、30 秒或其他間隔對時間序列資料進行分組?

如何在 MySQL 中以 10 秒、30 秒或其他間隔對時間序列資料進行分組?

Barbara Streisand
Barbara Streisand原創
2025-01-03 20:34:41244瀏覽

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

SELECT / GROUP BY - 時間段(10 秒、30 秒等)

在MyMy 中,可以擷取聚合使用SELECT 和GRO BY 子句基於時間間隔從表格中取得資料。考慮這樣一個場景,您有一個表格每 n 秒記錄一次樣本,其中有兩個相關列:time_stamp 和 count。

要取得以特定時間間隔分組的 count 欄位的總和或平均值,請執行下列步驟:

  1. 使用 UNIX_TIMESTAMP 函數將 time_stamp 欄位轉換為 UNIX 時間戳。
  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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn