2014-11-24 109 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