RANK

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)

RANK関数の例
顧客
レベル
ユニット
ランク
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_RANKDENSE_RANKROW_NUMBER