我有一张表,其中包含1小时内发生的事件。
2014-04-16 13:56:06.971 , 3474
2014-04-16 13:56:07.061 , 3609
2014-04-16 13:56:07.067 , 3617
表格包含时间戳和事件ID
我正在尝试将数据分组以计算5秒间隔内发生的事件数,因此它看起来像这样:
0-5 sec., 3
5-10 sec. , 6
10-15 sec. , 4
提前致谢! 我正在使用SQL Server 2008
答案 0 :(得分:1)
您可以使用以下查询:
declare @Hour datetime = '2014-04-16 13:00:00' -- starting time
select
CONVERT(VARCHAR(10), (DATEDIFF(second, @Hour, EventDateTime) / 5) * 5)
+ '-' + CONVERT(VARCHAR(10), (DATEDIFF(second, @Hour, EventDateTime) / 5 + 1) * 5) + ' sec',
COUNT(EventId)
from intervals
group by DATEDIFF(second, @Hour, EventDateTime) / 5
答案 1 :(得分:0)
这样的事情怎么样,你按秒/ 12分组
select
convert(varchar(5),[time stamp],108) as [hh:mm],
cast(min(datepart(s, [time stamp])) as varchar(10)) + ' - ' + cast(max(datepart(s, [time stamp])) as varchar(10)) as [second interval],
count(*) as total
from yourtable
group by convert(varchar(5),[time stamp],108), (datepart(s, [time stamp]) / 12)
或者您可以使用开始/结束秒创建一个计数表,然后加入它。