將MySQL資料組合成任意大小的時間桶
根據時間單位為單位的時間戳列,如何計算SQL/">MySQL表中的記錄數?
具體來說,我想計算在給定時間間隔內有多少條記錄的時間戳落在15分鐘的桶中.我瞭解如何在1秒,1分鐘,1小時,1天等等的桶中使用MySQL日期功能,例如
SELECT YEAR(datefield) Y, MONTH(datefield) M, DAY(datefield) D, COUNT(*) Cnt FROM mytable GROUP BY YEAR(datefield), MONTH(datefield), DAY(datefield)
但是如何分組15分鐘?
GROUP BY YEAR(datefield), MONTH(datefield), DAY(datefield), HOUR(datefield), FLOOR(MINUTE(datefield)/15)
你也可以說只是:
SELECT FLOOR(UNIX_TIMESTAMP(datefield)/900) AS t, COUNT(*) AS cnt FROM mytable GROUP BY t
應用程式負責將每個15分鐘時間的時間戳格式化為可讀的y / m / d / h / m. (如果您需要本地時間在瘋狂的非四分之一小時對齊的時區,您需要一個黑客抵消.)
http://stackoverflow.com/questions/2579803/group-mysql-data-into-arbitrarily-sized-time-buckets