我有一个超过 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