簡體   English   中英

如何在PHP數據庫中的時間戳中每天每6小時計算一次數據組?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM