簡體   English   中英

MS SQL:每15分鍾將數據流篩選為第一個值

[英]MS SQL: Filter datastream to first value every 15 minutes

我想應用一個過濾器將數據過濾到15分鍾,每15分鍾返回1行。

我有2個表數據,每個表包含2列:“ Tijd”作為時間戳,“ Kanaal 1”作為浮點。 根據程序的頻率(表1)或外部觸發器(表2),將新行添加到兩個表中。

我當前的代碼適用於第一個表

select [Tijd], [Kanaal 1] 
FROM Table_Metingen 
WHERE datepart(mi,tijd) % 15 = 0

表1 :(定期更新)

Tijd                | Kanaal 1
2016-06-27 00:00:00 | 53
2016-06-27 00:01:00 | 53
2016-06-27 00:02:00 | 53
2016-06-27 00:03:00 | 53
2016-06-27 00:04:00 | 53
2016-06-27 00:05:00 | 53
2016-06-27 00:06:00 | 53
2016-06-27 00:07:00 | 53

表2 :(由外部觸發器更新)

Tijd                | Kanaal 1
2016-06-27 00:00:01 | 53
2016-06-27 00:01:02 | 53
2016-06-27 00:01:04 | 53
2016-06-27 00:01:10 | 53
2016-06-27 00:02:04 | 53
2016-06-27 00:05:03 | 53
2016-06-27 00:06:02 | 53
2016-06-27 00:10:01 | 53

當前代碼的輸出如下:表1 :(定期更新)

Tijd                | Kanaal 1
2016-06-27 00:00:00 | 53
2016-06-27 00:15:00 | 53
2016-06-27 00:30:00 | 53
2016-06-27 00:45:00 | 53
2016-06-27 01:00:00 | 53
2016-06-27 01:15:00 | 53
2016-06-27 01:30:00 | 53
2016-06-27 01:45:00 | 53

表2 :(由外部觸發器更新)

Tijd                | Kanaal 1
2016-06-27 00:00:01 | 53
2016-06-27 00:15:02 | 53
2016-06-27 00:30:04 | 53
2016-06-27 00:45:00 | 53
2016-06-27 00:45:2  | 53 < Extra row, not needed
2016-06-27 01:00:01 | 53
2016-06-27 01:15:03 | 53
2016-06-27 01:30:01 | 53
2016-06-27 01:30:05 | 53 < Extra row, not needed
2016-06-27 01:45:02 | 53

額外的行歸因於Tijd列中的秒數。 01:30:01和01:30:05都填寫了檢查分鍾數%15 =0。因此,您可以擺脫查詢中的秒數,或者使用具有row_number()的cte並僅選擇所有帶有“ rownum”的行= 1英寸(例如)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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