我想应用过滤器将数据过滤到15分钟,每15分钟只返回1行。
我有2个表数据,每个表包含2列:“Tijd”作为时间戳,“Kanaal 1”作为float。根据程序的频率(表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
答案 0 :(得分:0)
其他行是由Tijd列中的秒数决定的。 01:30:01和01:30:05两者都填满了检查分钟%15 = 0.所以要么你在你的查询中摆脱秒,要么你用一个带有row_number()的cte,只选择所有的行&# 34; rownum = 1&#34; (例如)。