DENSE_RANK

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

DENSE_RANK attribue le même rang moyen aux valeurs identiques. Par exemple, DENSE_RANK peut renvoyer 1, 2, 3, 3, 5 pour une série de cinq membres de dimension.

Valeur renvoyée

NUMBER

Syntaxe

DENSE_RANK (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 et ont tous deux le rang 3.00. Le rang suivant est 5.00.

DENSE_RANK () OVER HIERARCHY (GLOBAL.CUSTOMER.SHIPMENTS_ROLLUP ORDER BY GLOBAL.UNITS_CUBE.UNITS NULLS LAST WITHIN ANCESTOR AT LEVEL GLOBAL.CUSTOMER.REGION)

Fonction DENSE_RANK - Exemple
Client
Niveau
Unités
Valeur DENSE_RANK
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
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

Rubriques connexes

AVERAGE_RANK, RANK, ROW_NUMBER