首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按5秒时间间隔对数据分组的查询

按5秒时间间隔对数据分组的查询
EN

Stack Overflow用户
提问于 2014-04-21 23:49:20
回答 2查看 2.3K关注 0票数 0

我有一个表,它的事件发生在一个小时内。

代码语言:javascript
复制
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秒间隔内对发生的事件数进行计数,因此如下所示:

代码语言:javascript
复制
0-5 sec., 3
5-10 sec. , 6
10-15 sec. , 4

提前谢谢!我正在使用Server 2008

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-21 23:59:34

您可以使用这样的查询:

代码语言:javascript
复制
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
票数 2
EN

Stack Overflow用户

发布于 2014-04-21 23:59:49

不如这样吧,你可以按秒/ 12分组

代码语言:javascript
复制
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)

或者,您可以创建一个包含开始/结束秒的理货表,然后加入到它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23207918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档