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)
客戶 |
層次 |
單位 |
等級 |
|---|---|---|---|
| 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
版權所有 © 2003,2007,Oracle。保留一切權利。