例: QUALIFYとRANKの使用 - Teradata Database - Teradata Vantage NewSQL Engine - 順序付き分析関数の例: QUALIFYとRANKの使用。

Teradata Vantage™ SQL関数、演算子、式および述部

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/xzf1512079057909.ditamap
dita:ditavalPath
ja-JP/xzf1512079057909.ditaval
dita:id
B035-1145
Product Category
Software
Teradata Vantage

問合わせに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
..。 ..。 ..。 ..。 ..。

この結果は、現在の販売期間が始まる前の売上げがかなり低かったということを物語っています。