2016-01-23 55 views
-1

我有一个数据库,我想在日期的每个小时内获取一列数据。在mssql中按组和时间选择多个列

表结构如下

id Time      Activity 
1 2015-11-25 13:43:01.787  1 
2 2015-11-25 13:43:01.787  2 
3 2015-11-25 23:43:01.787  0 
4 2015-11-26 12:43:01.787  2 
5 2015-11-27 23:43:01.787  1 

因此如果没有日期已过

Date  Hour TotalActivity 
2015-11-25 13   3 
2015-11-23 23   0 
2015-11-26 12   2 
2015-11-27 23   1 

我已创建了某种帮助查询低于其数据输出应该

SELECT CAST(Time as date) AS ForDate,Activity, 
     DATEPART(hour,Time) AS OnHour, 
     COUNT(*) AS Totals 
FROM cellinfo 
GROUP BY CAST(Time as date), Activity, 
     DATEPART(hour,Time) 

但我不能连接活动列的结果和 也不能能够应用在查询选择特定日期的数据需要某种帮助的地方。

回答

0

确定后经过一番挣扎,我能够得到的答案

SELECT CAST(Time as date) AS ForDate, 
    sum(Activity) as act, 
    DATEPART(hour,Time) AS OnHour, 
    COUNT(*) AS Totals 
    FROM cellinfo where Time BETWEEN '2015-12-04 00:00:00' AND '2015-12-04 23:59:59' 
    GROUP BY CAST(Time as date), 
    DATEPART(hour,Time) 

,但仍然在寻找与时间的事情之间没有选择日期的很好的答案。