RANKは、式の値に基づいてディメンションのメンバーをソートします。この関数は、ディメンション番号の順序番号を返します。
RANKでは、同じ値には同じランクが割り当てられるため、ディメンション数よりもランク数が少なくなることがあります。たとえば、 5つのディメンション番号に対して、RANKから、 1、 2、 3、 3、4が返されることがあります。
NUMBER
RANK (ntile_expression) OVER HIERARCHY
( dimension | hierarchy
ORDER BY expression [ASC | DSC] [NULLS {FIRST | LAST}]...
WITHIN {PARENT | LEVEL | ANCESTOR AT LEVEL level}
)
ntile_expression: この関数には実装されません。
dimension: ランク付けするメンバーを含むディメンションです。
hierarchy: dimensionの階層です。指定しない場合は、デフォルト階層が使用されます。
ORDER BY: ランクの基準を指定します。同順位となるものをさらにソートするために、ORDER BY句を追加することができます。
expression: ランクの基準として使用される値を指定します。
ASC: 昇順を指定します。
DSC: 降順を指定します。
NULLS FIRST: NULL値を含むメンバーを先頭にソートします。
NULLS LAST: NULL値を含むメンバーを末尾にソートします。
WITHIN: 一連の関連するディメンション・メンバーをランク付けするために選択します。
PARENT: 同じ親を持つ同一レベルのメンバーをランク付けします。
LEVEL: 同じレベルのすべてのメンバーをランク付けします。
ANCESTOR AT LEVEL level: 指定したレベルで、同じ親を持つ同一レベルのすべてのメンバーをランク付けします。
次の例では、各地域の顧客をUNITSメジャーの値に基づいてランク付けします。Ministry of Intl. Trad NaganoおよびKOSH Entrpr BristolはUNITSの値が同じため、どちらもランクは3.00になります。次のランクは4.00です。
RANK () OVER HIERARCHY (GLOBAL.CUSTOMER.SHIPMENTS_ROLLUP ORDER BY GLOBAL.UNITS_CUBE.UNITS NULLS LAST WITHIN ANCESTOR AT LEVEL GLOBAL.CUSTOMER.REGION)
顧客 |
レベル |
ユニット |
ランク |
|---|---|---|---|
| Asia Pacific | REGION | 21,764.91 |
null |
| Japan | WAREHOUSE | 10,930.17 |
4.00 |
| Australia | WAREHOUSE | 5,371.84 |
3.00 |
| Hong Kong | WAREHOUSE | 2,799.93 |
2.00 |
| Singapore | WAREHOUSE | 2,662.96 |
1.00 |
| KOSH Entrpr Wanchai | SHIP_TO | 2,799.93 |
7.00 |
| Computer Services Tokyo | SHIP_TO | 2,761.41 |
6.00 |
| Ministry of Intl. Trad Nagoya | SHIP_TO | 2,754.14 |
5.00 |
| KOSH Entrpr Tokyo | SHIP_TO | 2,714.69 |
4.00 |
| Ministry of Intl. Trad Nagano | SHIP_TO | 2,699.94 |
3.00 |
| KOSH Entrpr Bristol | SHIP_TO | 2,699.94 |
3.00 |
| KOSH Entrpr Brisbane | SHIP_TO | 2,673.73 |
2.00 |
| Computer Warehouse Singapore | SHIP_TO | 2,662.96 |
1.00 |
AVERAGE_RANK、DENSE_RANK、ROW_NUMBER
Copyright (C) 2003, 2007, Oracle. All rights reserved.