問合わせにQUALIFY句を追加すると、該当しないテーブルから行数を減らすことができます。
例えば、高い売上げを記録した月が例年どおりなのか、そうでないのかを調べる場合は、前の問合わせにQUALIFY句を追加します。
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 QUALIFY RANK() OVER(PARTITION BY item ORDER BY sales DESC) <=5;
このように限定節を追加すると、例えば以下のような結果テーブルが生成されます。
Item | SMonth | sales | Rank(Sales) | Moving Avg(Sales) |
---|---|---|---|---|
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 |
B | 1996-02 | 30 | 1 | 30 |
..。 | ..。 | ..。 | ..。 | ..。 |
この結果は、現在の販売期間が始まる前の売上げがかなり低かったということを物語っています。