2017-04-13 10 views
0

私のテーブルには5つの数字があります。私は3つの数字の移動平均を見つけたい。私が使用していますpostgresqlで平均を見つける

クエリは、私は私のクエリは最初の3つの値から計算する3つの以前の値を持つことはありませんよう第四値の平均を見つけ始めたい

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

です。提案してください。

+0

最初の行よりも小さい行から開始して、すべてのセルの数値の平均を求めますか? –

答えて

0

平均値は最初の3つの値に対して有効です.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; 
関連する問題