ROW_NUMBER

ROW_NUMBER ordena os membros de uma dimensão com base nos valores de uma expressão. A função retorna os números da seqüência dos membros da dimensão.

ROW_NUMBER designa uma classificação exclusiva a cada membro da dimensão; para valores idênticos, a classificação é arbitrária. Por exemplo, ROW_NUMBER sempre retornará 1, 2, 3, 4, 5 para uma série de cinco membros da dimensão, mesmo se todos eles tiverem o mesmo valor.

Valor de Retorno

NUMBER

Sintaxe

ROW_NUMBER (ntile_expression) OVER HIERARCHY
     ( dimension | hierarchy
       ORDER BY expression [ASC | DSC] [NULLS {FIRST | LAST}]...
       WITHIN {PARENT | LEVEL | ANCESTOR AT LEVEL level}
     )

Argumentos

ntile_expression não é implementado nesta função.

dimensão é a dimensão cujos membros estão sendo classificados.

hierarquia é uma hierarquia da dimensão. Caso contrário, a hierarquia default é usada.

ORDER BY fornece a base para a classificação. Você pode fornecer cláusulas ORDER BY adicionais para interromper ligações na ordem.

expressão fornece os valores a serem usados como a base para as classificações.

ASC cria a classificação dos menores valores de dados para os maiores.

DSC cria a classificação dos maiores valores de dados para os menores.

NULLS FIRST lista os membros com os valores nulos primeiro.

NULLS LAST lista os membros com os valores nulos por último.

WITHIN seleciona um conjunto de membros de dimensão relacionados a serem classificados.

PARENT classifica membros no mesmo nível com o mesmo pai.

LEVEL classifica todos os membros no mesmo nível.

ANCESTOR AT LEVEL nível classifica todos os membros no mesmo nível e com o mesmo pai em um nível especificado.

Exemplo

O exemplo a seguir classifica clientes em cada região com base nos valores da medida UNITS. Ministry of Intl. Trad Nagano e KOSH Entrpr Bristol têm o mesmo valor para UNITS, mas elas são arbitrariamente classificadas de 3,00 e 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)

Exemplo da Função ROW_NUMBER
Cliente
Nível
Unidades
Número de linha
Pacífico Asiático REGION
21,764.91
nulo
Japão WAREHOUSE
10,930.17
4.00
Austrália WAREHOUSE
5,371.84
3.00
Hong Kong WAREHOUSE
2,799.93
2.00
Cingapura 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

Tópicos Relacionados

AVERAGE_RANK, DENSE_RANK, RANK