以下查询生成连续三个月的销售额的移动平均值。窗口构架的大小是三行:两个前面的行加一个当前行。窗口从分区的开始滑至结尾。
SELECT prod_id, month_num, sales, AVG(sales) OVER
(PARTITION BY prod_id ORDER BY month_num ROWS
BETWEEN 2 PRECEDING AND CURRENT ROW)
FROM sale WHERE rep_id = 1
ORDER BY prod_id, month_num;
prod_id month_num sales avg(sales)
------- --------- ------ ----------
10 1 100 100.00
10 2 120 110.00
10 3 100 106.66
10 4 130 116.66
10 5 120 116.66
10 6 110 120.00
20 1 20 20.00
20 2 30 25.00
20 3 25 25.00
20 4 30 28.33
20 5 31 28.66
20 6 20 27.00
30 1 10 10.00
30 2 11 10.50
30 3 12 11.00
30 4 1 8.00