|
|
|
| 第 4 章 | OLAP の使用 |
200 | Dill | 54800.000 | 54800.000 | ||
200 | Powell | 54600.000 | 109400.000 | ||
200 | Poitras | 46200.000 | 155600.000 | ||
200 | Singer | 34892.000 | 190492.000 | ||
200 | Kelly | 87500.000 | 277992.000 | ||
200 | Martel | 55700.000 | 333692.000 | ||
200 | Sterling | 64900.000 | 398592.000 | ||
200 | Chao | 33890.000 | 432482.000 | ||
200 | Preston | 37803.000 | 470285.000 | ||
200 | Goggin | 37900.000 | 508185.000 | ||
200 | Pickett | 47653.000 | 555838.000 |
ランク付け関数
ランク付け関数を使用すると、データ・セットの値をランク付けされた順序 のリストにまとめ、“ 今年度出荷された製品の中で売上合計が上位 10 位の製 品名” または“15 社以上から受注した営業部員の上位5%” といった質問に答え るクエリを 1 つの SQL 文で作成することができます。ランク付け関数には RANK()、DENSE_RANK()、PERCENT_RANK()、NTILE() などがあり、 PARTITION BY 句と一緒に使用します。
SQL/OLAP では、次の 4 つの関数がランク付け関数として分類されています。
<RANK FUNCTION TYPE> ::=
RANK DENSE RANK PERCENT RANK NTILE
ランク付け関数を使用すると、クエリで指定された順序に基づいて、結果セッ ト内の各ローのランク値を計算することができます。たとえば販売マネージャ が、営業成績が最高または最低の営業部員、販売成績が最高または最低の販売 地域、あるいは売上が最高または最低の製品を調べたい場合があります。この 情報はランク付け関数によって入手できます。
RANK() 関数
RANK 関数は、ORDER BY 句で指定されたカラムについて、ローのパーティ ション内での現在のローのランクを表す数値を返します。パーティション内の 最初のローが 1 位となり、25 のローを含むパーティションでは、パーティショ ン内の最後のローが 25 位となります。RANK は構文変換として指定されてお り、実際に RANK を同等の構文に変換することも、変換を行った場合に返す はずの値と同等の結果を返すこともできます。
次の例に出てくる ws1 は、w1 という名前のウィンドウを定義するウィンドウ 指定を表しています。
RANK() OVER ws
パフォーマンス&チューニング・ガイド | 75 |