In this example, the top ORDER BY clause of a query is applied to the final results of a window function. The ORDER BY in a window clause is applied to the input data of a window function.
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 desc, month_num;
The results from the above query:
prod_id month_num sales avg(sales) ------- --------- ----- ---------- 30 1 10 10.00 30 2 11 10.50 30 3 12 11.00 30 4 1 8.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 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