0

我有一个信息数据集,可以在事件发生时记录它们;我希望能够总结一天中不同时间段的数据。我的 RAW 数据只是带有事件的系统时间的时间戳。我有一个 SQL 查询,可以计算一个小时内发生了多少事件。

三天内的示例或原始数据,

Time_Period             Count
------------------------------  
29/07/13 08:00:00       2  
29/07/13 09:00:00       19  
29/07/13 10:00:00       21  
29/07/13 11:00:00       30  
29/07/13 12:00:00       21  
29/07/13 13:00:00       24  
29/07/13 14:00:00       18  
29/07/13 15:00:00       35  
29/07/13 16:00:00       17  
29/07/13 17:00:00       3  
30/07/13 09:00:00       20  
30/07/13 10:00:00       47  
30/07/13 11:00:00       22  
30/07/13 12:00:00       19  
30/07/13 13:00:00       26  
30/07/13 14:00:00       30  
30/07/13 15:00:00       20  
30/07/13 16:00:00       26  
30/07/13 17:00:00       10  
30/07/13 18:00:00       1  
31/07/13 08:00:00       1  
31/07/13 09:00:00       23  
31/07/13 10:00:00       28  
31/07/13 11:00:00       18  
31/07/13 12:00:00       25  
31/07/13 13:00:00       17  
31/07/13 14:00:00       17  
31/07/13 15:00:00       36  
31/07/13 16:00:00       22  
31/07/13 17:00:00       8  
31/07/13 20:00:00       1 

但是,我想要实现的是获取这些数据并对其进行汇总,而忽略字段的日期部分(不是时间,就像其他人想要的那样)

我会得到一个看起来像这样的结果。(以上三天)

Time_Period   Sum_Count
-----------------------
08:00:00        23  
09:00:00        89  
10:00:00        71  
11:00:00        67  
12:00:00        72  
13:00:00        71  
14:00:00        55  
15:00:00        97    
16:00:00        49    
17:00:00        12    
18:00:00        1   

我可以在代码中完成并将答案转储回临时表;但是,一开始就在 SQL 中正确执行它会使从不同系统调用变得更容易。

4

2 回答 2

1
SELECT
    HourMinuteSecond=CONVERT(TIME,YOURDATE),
    GroupCount=COUNT(*)
FROM 
   YOURTABLE
GROUP BY CONVERT(TIME,YOURDATE)
于 2013-08-28T03:41:43.407 回答
0

很简单:

select count(*),
convert(sysname,DATEPART(HOUR,Time_Period ))+':'+
convert(sysname,DATEPART(minute,Time_Period ))+':'+
convert(sysname,datepart(second,Time_Period ))
from YourTable
group by 
convert(sysname,DATEPART(HOUR,Time_Period ))+':'+
convert(sysname,DATEPART(minute,Time_Period ))+':'+
convert(sysname,datepart(second,Time_Period ))

如果您使用 SQL2012,您可以使用TIMEFROMPARTS函数构建强类型时间。如果您使用早期版本,请在上面的示例中对齐字符串并添加ORDER BY子句

于 2013-08-28T03:52:59.463 回答