RANK 根据表达式的值对维成员进行排序。此函数返回维成员的序列号。
RANK 为相同的数值指定相同的排名,因此,排名数可能少于维成员数。例如,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 首先列出带有空值的成员。
NULLS LAST 最后列出带有空值的成员。
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)
客户 |
级别 |
单位 |
排名 |
|---|---|---|---|
| 亚太地区 | 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 |
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
版权所有 © 2003,2007,Oracle。保留所有权利。