0
在我的表中,我有5个数字。我想找到3个移动平均数。我使用查找postgresql中的平均数
查询
select avg(value) over(order by value rows between 3 preceding and 1 preceding) as average
from test;
我想我的查询开始的前三个值不会有3个以前的值从计算从第4个值平均发现。请建议。
在我的表中,我有5个数字。我想找到3个移动平均数。我使用查找postgresql中的平均数
查询
select avg(value) over(order by value rows between 3 preceding and 1 preceding) as average
from test;
我想我的查询开始的前三个值不会有3个以前的值从计算从第4个值平均发现。请建议。
平均值将为前三个 - 它只会是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;
你想要一行中的每个单元格的数量的平均值,从一个低于第一个的行开始? –