工作中要求對日志表中的時間戳字段進行分組。分組的條件是,相隔 1分鐘間隔的被分到一組。
數據庫表是這樣的

SELECT COUNT(log_id) AS u_count FROM logdb.`log`
GROUP BY TIMESTAMP-TIMESTAMP%(1*60)
其中timestamp 是數據庫時間字段。 括號中的1 是間隔時間,1分鐘。 如果是1小時,就寫60,如果是30s 就寫0.5
結果

那被分組的id 如何解決呢?分完組我們還需要 哪些記錄被分到哪些組了。
我們可以這么做。
SELECT COUNT(log_id) AS u_count ,GROUP_CONCAT(DISTINCT log_id ORDER BY log_id DESC ) AS ids FROM logdb.`log`
GROUP BY TIMESTAMP-TIMESTAMP%(0.5*60)
GROUP_CONCAT(DISTINCT log_id ORDER BY log_id DESC )
這里默認使用 , 分割 將 log_id穿成字符串,并且這些id是不重復,且排序遞降。

到此這篇關于group by 按某一時間段分組統計并查詢的文章就介紹到這了,更多相關group by分組統計內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 如何在datatable中使用groupby進行分組統計
- Mysql升級到5.7后遇到的group by查詢問題解決
- Sequelize中用group by進行分組聚合查詢
- MySQL高級查詢之與Group By集合使用介紹
- 解析mysql中:單表distinct、多表group by查詢去除重復記錄