首頁 > 資料庫 > mysql教程 > 如何將 MySQL 資料分組為 5 分鐘間隔?

如何將 MySQL 資料分組為 5 分鐘間隔?

Barbara Streisand
發布: 2025-01-15 11:26:45
原創
288 人瀏覽過

How to Group MySQL Data into 5-Minute Intervals?

MySQL 資料以 5 分鐘間隔分組

本文將解決一個 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>
登入後複製

說明:

修改後的查詢包含兩個關鍵變更:

  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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板