MySQL按時間統計每個小時記錄數


MySQL按時間統計每個小時記錄數

方案1:

?
1
2
3
4
5
6
7
SELECT  @rownum := @rownum + 1 AS ID,
         CONCAT(( CASE WHEN t. hour = 24 THEN 0 ELSE t. hour END ), ':00:00' ) AS TIME , COUNT (*) AS COUNT
FROM ( SELECT id, HOUR (DATE_FORMAT(createtime, '%H:%i:%s' ))+1 AS HOUR FROM baby WHERE DATE_FORMAT(createtime, '%Y-%m-%d' )= '2016-10-16' ) t,
      ( SELECT @rownum := 0) r
GROUP BY TIME ORDER BY ID
 
//這個計數, 是LESS THAN TIME 的計數方法, 即11:xx:xx的記錄是記到12:00:00下面的, 而不是11:00:00;

上面的修改

?
1
2
3
4
5
SELECT  @rownum := @rownum + 1 AS ID,
         CONCAT(( CASE WHEN t. hour = 24 THEN 0 ELSE t. hour END ), '' ) AS TIME , COUNT (*) AS COUNT
FROM ( SELECT id, HOUR (DATE_FORMAT(createtime, '%H:%i:%s' )) AS HOUR FROM baby WHERE DATE_FORMAT(createtime, '%Y-%m-%d' )= '2016-10-16' ) t,
      ( SELECT @rownum := 0) r
GROUP BY TIME ORDER BY ID

方案2

?
1
SELECT LEFT ( createtime, 13 ) , COUNT ( * ) FROM baby WHERE DATE_FORMAT(createtime, '%Y-%m-%d' )= '2016-10-16' GROUP BY LEFT ( createtime, 13 )

如果當前小時無數據目前無法返回0 ! 不知道怎么處理了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM