Sybase IQ 12.7 User Manual

Page of 212
 4 章    OLAP の使用
パフォーマンス&チューニング・ガイド
75
200
Dill
1985-12-06
54800.000
54800.000
200
Powell
1988-10-14
54600.000
109400.000
200
Poitras
1988-11-28
46200.000
155600.000
200
Singer
1989-06-01
34892.000
190492.000
200
Kelly
1989-10-01
87500.000
277992.000
200
Martel
1989-10-16
55700.000
333692.000
200
Sterling
1990-04-29
64900.000
398592.000
200
Chao
1990-05-13
33890.000
432482.000
200
Preston
1990-07-11
37803.000
470285.000
200
Goggin
1990-08-05
37900.000
508185.000
200
Pickett
1993-08-12
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