[英]Finding records within a 5 min time interval in SQL
我有一個包含超過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
這應該做。 您可以按時間間隔/ 5對結果進行分組。
select
cast(to_char(Time, 'mi') as int) / 5 * 5 || ' - ' || cast(to_char(Time, 'mi') as int) / 5 * 5 + 5 as "Interval",
count(1)
from tableName
where
Boolean = 1
group by
cast(to_char(Time, 'mi') as int) / 5
select * from tableName where Time
BETWEEN DATEADD(minute, -5, current_timestamp)
AND current_timestamp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.