ROW_NUMBER

ROW_NUMBER classe les membres d'une dimension en fonction des valeurs d'une expression. Cette fonction renvoie les numéros de séquence des membres.

ROW_NUMBER affecte un numéro d'ordre unique à chaque membre de dimension. Dans le cas de valeurs identiques, le classement est arbitraire. Par exemple, ROW_NUMBER renvoie toujours 1, 2, 3, 4, 5 pour une séquence de cinq membres de dimension, même s'ils ont tous la même valeur.

Valeur renvoyée

NUMBER

Syntaxe

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

Arguments

ntile_expression n'est pas implémenté dans cette fonction.

dimension correspond à la dimension dont les membres sont en cours de classement.

hierarchy désigne une hiérarchie de dimension. Sinon, la hiérarchie par défaut est utilisée.

ORDER BY sert de base pour le classement. Vous pouvez fournir des clauses ORDER BY supplémentaires pour traiter les éventuels ex aequo.

expression fournit les valeurs à utiliser comme base pour les classements.

ASC classe les valeurs de données de la plus petite à la plus grande.

DSC classe les valeurs de données de la plus grande à la plus petite.

NULLS FIRST énumère en premier les membres avec des valeurs NULL.

NULLS LAST énumère en dernier les membres avec des valeurs NULL.

WITHIN sélectionne un ensemble de membres de dimension connexes à classer.

PARENT classe les membres situés au même niveau avec le même parent.

LEVEL classe tous les membres situés au même niveau.

ANCESTOR AT LEVEL level classe tous les membres situés au même niveau et avec le même parent à un niveau particulier.

Exemple

Dans l'exemple suivant, les clients sont classés dans chaque région en fonction des valeurs de l'indicateur UNITS. Les entrées "Ministry of Intl. Trad Nagano" et "KOSH Entrpr Bristol" possèdent la même valeur pour UNITS, mais leur classement est arbitraire (3.00 et 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)

Fonction ROW_NUMBER - Exemple
Client
Niveau
Unités
Numéro de ligne
Asie Pacifique REGION
21,764.91
null
Japan WAREHOUSE
10,930.17
4.00
Australie 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

Rubriques connexes

AVERAGE_RANK, DENSE_RANK, RANK