2014-11-24 108 views
0

我試圖創建一個查詢來顯示按小時分組的金融合同的細分。按小時顯示日期範圍內的每一天細分MYSQL

這裏是我迄今幾個小時的例子:

SELECT CONCAT(HOUR(received), ':00-', HOUR(received)+1, ':00') AS Hours, 
COUNT(*) as `leads` 
FROM (digital_lead) 
WHERE `received` BETWEEN '2014-11-01 00:00:00' AND '2014-11-24 00:00:00' 
GROUP BY HOUR(received) 

而這裏的結果....

Hours usage 

0:00-1:00 36 
1:00-2:00 25 
2:00-3:00 16 
3:00-4:00 4 
4:00-5:00 7 
5:00-6:00 8 
6:00-7:00 13 // etc all the way to 23:00 - 24:00 

OK - 這樣似乎工作,但是,它聚合在BETWEEN聲明中設置的時間段內,該時段的所有leads。我希望能夠在每個小時的時間範圍內顯示每小時的細目。

因此,這將是這個樣子:

Date  Hours   leads 
2014-11-01  
      0:00-1:00  36 
      1:00-2:00  25 
      2:00-3:00  16 
      3:00-4:00  4 
      4:00-5:00  7 
      5:00-6:00  8 
      6:00-7:00  13 // etc all the way to 23:00 - 24:00 

所以每個日期將顯示,然後爲這一天等的時間。

謝謝。

+0

做如果某個特定的一天不存在一小時,您還想顯示零? – fthiella 2014-11-24 20:36:37

+0

@fthiella - 如果可能,我想每小時也顯示零結果。謝謝 – aphextwix 2014-11-24 20:43:39

回答

2

集團按日期還有:

SELECT DATE(received), HOUR(received), ... 
... 
GROUP BY DATE(received), HOUR(received) 

既然你是按小時分組()只,你會essentialy越來越

Hour 
1  sum of leads in hour 1 of jan 1, jan 2, jan 3, ... dec 31 
2  sum of leads in hour 2 of jan 1, jan 2, jan 3, ... dec 31 

不是

Jan 1 Hour 1 sum of leads for just that one hour on the one day 
Jan 1 Hour 2 sum of leads for just that one hour on the one day 
.. 
Dec 31 Hour 23 sum of leads 
+0

謝謝馬克 - 這幫了很大忙。我是否可以按天,周,月和年應用相同的方法進行分組? – aphextwix 2014-11-24 20:44:48