我在分組某些數據集時遇到了一些麻煩。這是我的查詢和查詢結果。羣組datetime範圍內
SELECT COUNT(*),salarie_id, created_at
FROM enregistrement
GROUP BY salarie_id, created_at
我的觀點是將類似的created_at行,在+/- 3秒的時間間隔。我沒有管理它,甚至在使用INTERVAL
時,在HAVING
,WHERE ... BETWEEN
等標準中。
如何將這些行分組以獲得例如我的計數結果中的36(33 + 3),如圖中所示?
沒有找到任何合適的解決方案...讓我知道你是否想要一些額外的信息。
更新1:看起來@fancypants的解決方案是正確的方式。
SELECT COUNT(*),salarie_id, DATE_FORMAT(created_at, CONCAT('%Y-%m-%d %H:%i:', LEFT(RIGHT(created_at, 2), 1), RIGHT(created_at, 1) % 3)) AS 'date'
FROM enregistrement
GROUP BY salarie_id, DATE_FORMAT(created_at, CONCAT('%Y-%m-%d %H:%i:', LEFT(RIGHT(created_at, 2), 1), RIGHT(created_at, 1) % 3))
更好地使用'DATE_FORMAT()'(在'select'子句中也是'group by'子句中的一樣,只是不想讓它看起來很雜亂 – fancyPants
似乎我們得到了,但不是好結果呢,我更新了我的帖子,請看看,我需要將我選擇的2組進行分組,因爲他們在'created_at'字段中只有1秒的差異。 –
對不起,模數的東西是錯誤的。咖啡更正了我的答案 – fancyPants