在postgresql中查找平均值

时间:2017-04-13 21:12:01

标签: sql postgresql

在我的表中我说了5个数字。我想找到3个数字的移动平均值。

我正在使用的查询是

select avg(value) over(order by value rows between 3 preceding and 1 preceding) as average 
from test; 

我希望我的查询从第4个值开始寻找平均值,因为前三个值不会有3个先前的值来计算。请建议。

1 个答案:

答案 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;