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>
說明:
修改後的查詢包含兩個關鍵變更:
FROM_UNIXTIME(UNIX_TIMESTAMP(timestamp) DIV 300 * 300)
將其轉換回時間戳。 (MySQL 使用此方法,PostgreSQL 的方法在 MySQL 中不適用)UNIX_TIMESTAMP(timestamp) DIV 300
) 和名稱對資料進行分組,確保每個 5 分鐘間隔都被視為一個單獨的分組。 結果:
透過這些更改,您的查詢將產生所需輸出,其中結果以 5 分鐘間隔分組,每個間隔顯示該間隔內「John」出現的總次數。
以上是如何將 MySQL 資料分組為 5 分鐘間隔?的詳細內容。更多資訊請關注PHP中文網其他相關文章!