在我的表中我说了5个数字。我想找到3个数字的移动平均值。
我正在使用的查询是
select avg(value) over(order by value rows between 3 preceding and 1 preceding) as average
from test;
我希望我的查询从第4个值开始寻找平均值,因为前三个值不会有3个先前的值来计算。请建议。
答案 0 :(得分:0)
平均值适用于前三个 - 它只是NULL
或基于少于3行。
但是,你可以使用row_number()
;
select (case when row_number() over (order by value) > 3
then avg(value) over (order by value rows between 3 preceding and 1 preceding)
end) as average
from test;