ROW_NUMBERは、式の値に基づいてディメンションのメンバーをソートします。この関数は、ディメンション番号の順序番号を返します。
ROW_NUMBERでは、各ディメンション・メンバーに一意のランクが割り当てられます。同じ値でもランクは任意です。たとえば、ROW_NUMBERは、5つのディメンション番号に対して、すべてが同じ値であっても常に1、2、3、4、5を返します。
NUMBER
ROW_NUMBER (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になります。
ROW_NUMBER () 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 |
8.00 |
| Computer Services Tokyo | SHIP_TO | 2,761.41 |
7.00 |
| Ministry of Intl. Trad Nagoya | SHIP_TO | 2,754.14 |
6.00 |
| KOSH Entrpr Tokyo | SHIP_TO | 2,714.69 |
5.00 |
| KOSH Entrpr Bristol | SHIP_TO | 2,699.94 |
4.00 |
| Ministry of Intl. Trad Nagano | 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 |
Copyright (C) 2003, 2007, Oracle. All rights reserved.