Postgresql 月移动平均SQL

Postgresql 月移动平均SQL,postgresql,moving-average,Postgresql,Moving Average,我有一个带有列的postgreSQL表: 年份[整数1960-2014] 月份[整数1-12]和 值列。[双精度] 由于我无法控制输入数据,年和月是独立的列。我可以将它们合并到datetime列中 现在我想计算10年移动平均线。1969年1月的10年移动平均线应为平均值(1960年1月、1961年1月、1969年1月)等 这就是我到目前为止所做的: SELECT year,month, value, AVG(value) OVER(ORDER BY year ROWS B

我有一个带有列的postgreSQL表:

  • 年份[整数1960-2014]
  • 月份[整数1-12]和
  • 值列。[双精度]
  • 由于我无法控制输入数据,年和月是独立的列。我可以将它们合并到datetime列中

    现在我想计算10年移动平均线。1969年1月的10年移动平均线应为平均值(1960年1月、1961年1月、1969年1月)等

    这就是我到目前为止所做的:

    SELECT year,month, value,
        AVG(value)
            OVER(ORDER BY year ROWS BETWEEN 9 PRECEDING AND CURRENT ROW) as ma10_value
    FROM table_name
    

    使用
    分区
    说明

    SELECT value, year, month,
      SUM(value)
        OVER(PARTITION BY month ORDER BY year ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) as ma2_value
    FROM test01