例: RANKおよびAVGの使用
順序付き分析関数であるRANKとAVGを使った以下のSELECT文の結果について考えてみます。
SELECT item, smonth, sales, RANK() OVER (PARTITION BY item ORDER BY sales DESC), AVG(sales) OVER (PARTITION BY item ORDER BY smonth ROWS 3 PRECEDING) FROM sales_tbl ORDER BY item, smonth;
結果テーブルは、例えば以下のようなものになります。
Item | SMonth | sales | Rank(Sales) | Moving Avg(Sales) |
---|---|---|---|---|
A | 1996-01 | 110 | 13 | 110 |
A | 1996-02 | 130 | 10 | 120 |
A | 1996-03 | 170 | 6 | 137 |
A | 1996-04 | 210 | 3 | 155 |
A | 1996-05 | 270 | 1 | 195 |
A | 1996-06 | 250 | 2 | 225 |
A | 1996-07 | 190 | 4 | 230 |
A | 1996-08 | 180 | 5 | 222 |
A | 1996-09 | 160 | 7 | 195 |
A | 1996-10 | 140 | 9 | 168 |
A | 1996-11 | 150 | 8 | 158 |
A | 1996-12 | 120 | 11 | 142 |
A | 1997-01 | 120 | 11 | 132 |
B | 1996-02 | 30 | 5 | 30 |
..。 | ..。 | ..。 | ..。 | ..。 |