我有一个表,它的事件发生在一个小时内。
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提前谢谢!我正在使用Server 2008
发布于 2014-04-21 23:59:34
您可以使用这样的查询:
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发布于 2014-04-21 23:59:49
不如这样吧,你可以按秒/ 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)或者,您可以创建一个包含开始/结束秒的理货表,然后加入到它。
https://stackoverflow.com/questions/23207918
复制相似问题