[英]How to count data group by per 6 hours interval in every day in timestamp from database in PHP?
這是我的查詢:
$sql = "SELECT DATE( pm_timestamp ) AS d, HOUR( pm_timestamp ) AS h,
COUNT( * ) AS c FROM pm_impr_tracker WHERE campaign_id = '$camp_id' GROUP BY h,d order by `pm_timestamp`";
這給出了每小時的數據,但我想要每 6 小時。 我的結果:
d h c
2015-08-23 6 6
2015-08-23 7 11
2015-08-23 8 26
2015-08-23 9 57
2015-08-23 10 36
2015-08-23 11 19
2015-08-23 12 21
2015-08-23 13 18
2015-08-23 14 18
2015-08-23 15 17
2015-08-23 16 107
2015-08-23 17 55
2015-08-24 8 26
2015-08-24 9 57
2015-08-24 10 36
2015-08-24 11 19
2015-08-24 12 21
2015-08-24 13 18
2015-08-24 14 18
您發布的代碼按小時對記錄進行分組。 如果您需要按 6 小時的間隔對它們進行分組,那么您所要做的就是使h
成為一天中此類 6 小時組的數量。 例如, h = 0
是該組的小時0..5
(即HOUR( pm_timestamp
0和5之間)), h = 1
為小時6..11
等。
如果您將小時除以 6 並忽略余數,則可以輕松實現這一點。 這就是 MySQL DIV operator
的謀生方式。
查詢是:
SELECT DATE(pm_timestamp) AS d,
HOUR(pm_timestamp) DIV 6 AS h,
COUNT(*) AS c
FROM pm_impr_tracker
WHERE campaign_id = '$camp_id'
GROUP BY h, d
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.