我正在尝试消除从eventhub接收的数据中的数据异常,并通过Azure流分析仅将选定的数据发送到Azure函数,因为我正在编写一个SQL查询,需要一些帮助
要求:我需要收集过去60秒的数据,需要按ID分组并比较我在60秒内收到的记录,如果任何记录值远高于选定值,则忽略该记录(例如,我将收集过去60秒内的4条记录,如果数据为40 40 40 40 5。我们应删除5。示例2 - 20 20 20 500删除500。)
我的sql表将是这样的:
id Temp date datetime
123 30 2023-01-01 2023-01-01 12:00:00
124 35 2023-01-01 2023-01-01 12:00:00
123 31 2023-01-01 2023-01-01 12:00:00
123 33 2023-01-01 2023-01-01 12:00:00
123 60 2023-01-01 2023-01-01 12:00:00
124 36 2023-01-01 2023-01-01 12:00:00
124 36 2023-01-01 2023-01-01 12:00:00
124 8 2023-01-01 2023-01-01 12:00:00
124 36 2023-01-01 2023-01-01 12:00:00
我需要排除不在其他记录范围内的记录
1条答案
按热度按时间lx0bsm1f1#
我将把比较的细节留给您,但是您可以使用
CROSS APPLY
来收集用于比较的数据。比如:
请确保在
TemperatureData(id, datetime)
上有索引。如果您愿意接受最后N个值而不是时间范围,则窗口聚合计算可能更有效。
请注意:以上是未经测试的代码,可能需要一些语法修正和调试。如果你发现错误,请评论,我会更正后。