ROW_NUMBER 根据表达式的值对维成员进行排序。此函数返回维成员的序列号。
ROW_NUMBER 为每个维成员指定唯一排名;对于相同值,随机排名。例如 ROW_NUMBER 始终为一组五个维成员返回 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 首先列出带有空值的成员。
NULLS LAST 最后列出带有空值的成员。
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)
客户 |
级别 |
单位 |
行号 |
|---|---|---|---|
| 亚太地区 | REGION | 21,764.91 |
空 |
| 日本 | WAREHOUSE | 10,930.17 |
4.00 |
| 澳大利亚 | WAREHOUSE | 5,371.84 |
3.00 |
| 香港 | WAREHOUSE | 2,799.93 |
2.00 |
| 新加坡 | 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 |
版权所有 © 2003,2007,Oracle。保留所有权利。