Azure 流分析查询移动平均线

Azure stream analysis query moving average

在使用 Azure 流分析时,我可以使用 AVG 创建一种移动平均线,并通过 HoppingWindow 将它们分组,如下所示。

但是,这将创建最后 5 秒内点的移动平均值。有没有办法创建最后 n 个数据点的移动平均值?我知道我可以调整 windows 的大小以使 n 个点进入 window,但是有没有一种方法可以像 MySQL 和 PostgresSQL 中那样精确测量最后 n 个点?

 SELECT System.TimeStamp AS OutTime, AVG (value)
 INTO
 [output]
 FROM  [input]
 GROUP BY HoppingWindow(second,5,1) 

今天 ASA windows 仅基于时间。但是,您可以使用 LAG 函数获取以前的事件。 对于你的查询,如果你想在最近的 3 个事件中取平均值,它将是这样的:

SELECT System.TimeStamp AS OutTime,  
       AvgValue= ( LAG(value,1) OVER (LIMIT DURATION(minute, 5))  
                 + LAG(value,2) OVER (LIMIT DURATION(minute, 5))
                 + LAG(value,3) OVER (LIMIT DURATION(minute, 5))
                 )/3
FROM input  

对于给您带来的不便,我们深表歉意。

谢谢,

JS