Azure流分析查询移动平均值

时间:2017-06-26 22:20:49

标签: azure azure-stream-analytics

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

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

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

1 个答案:

答案 0 :(得分:0)

今天ASA窗口仅基于时间。但是,您可以使用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