【发布时间】:2013-12-08 14:23:08
【问题描述】:
我有一个超过 100,000 行的表,其中包含以下列:ID、时间和布尔值。
时间列将时间精确到秒。
我需要一个查询,从表的开始到结束每 5 分钟的时间间隔查找 Boolean = 1 的所有实例,然后按时间间隔对计数进行分组。
表格代表 4 小时的数据,所以我应该得到 48 行结果。
我正在使用 MS SQL Server。
我尝试了几种方法,但时间间隔逻辑让我很难过。
编辑:我想通了!
SELECT DATEADD(MINUTE, DATEDIFF(MINUTE, 0, timestamp)/5 * 5,0), COUNT(*)
FROM table
WHERE isrepeat = 1
GROUP BY by DATEADD(MINUTE, DATEDIFF(MINUTE, 0, timestamp)/5 * 5,0)
ORDER BY by 1
【问题讨论】:
标签: sql sql-server time intervals