簡體   English   中英

在5分鍾的時間間隔內在SQL中查找記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM