Passer au contenu principal
Workday User Guide
Dernière mise à jour : 2023-06-23
RANK

RANK

Description

RANK
est une fonction d'agrégation de fenêtre utilisée pour affecter un numéro de classement à chaque rangée d'un groupe. Si plusieurs rangées ont la même valeur de classement (il y a égalité), Workday affecte la même valeur de rang aux rangées liées et omet la position de classement suivante.
La
PARTITION BY
La clause détermine quels champs utiliser pour partitionner un ensemble de rangées d'entrée en groupes.
La
ORDER BY
La clause détermine comment classer les rangées dans la partition avant qu'elles ne soient rangées.
Workday sépare les rangées d'entrée en groupes en fonction des champs de partitionnement, trie les rangées en fonction des champs de classement, puis calcule l'expression d'agrégation (rang pour cette fonction) dans chaque groupe. Les rangées classées de chaque groupe commencent par 1.

Syntaxe

RANK
()
OVER
(
PARTITION BY
partitioning_field
[,
partitioning_field
]
ORDER BY
ordering_field
[ASC | DESC] [,
ordering_field
[ASC | DESC]] )

Valeur de retour

Retourne une valeur de type
Integer
.

Paramètres d'entrée

OVER()
Est obligatoire.
OVER
doit être utilisé dans un délai d'un
RANK
l'expression.
PARTITION BY
partitioning_field
Est obligatoire. Utilisez la
PARTITION BY
clause pour indiquer un ou plusieurs champs à utiliser pour partitionner un groupe de rangées d'entrée. Vous pouvez indiquer n’importe quel type de champ sauf Devise. Exemple : vous indiquez le champ Mois comme champ de partitionnement. Par conséquent, Workday regroupe dans une seule partition tous les enregistrements qui ont la même valeur pour le mois.
ORDER BY
ordering_field
Est obligatoire. Utilisez la
ORDER BY
clause pour indiquer comment classer les rangées d'entrée dans la partition en utilisant les valeurs du champ précisé dans chaque partition. Vous pouvez indiquer n’importe quel type de champ sauf Devise.
Vous pouvez utiliser le
DESC
ou
ASC
des mots-clés à trier par ordre décroissant (les valeurs de haut à bas, les valeurs NULL sont les dernières) ou par ordre croissant (les valeurs de bas à hautes, les valeurs de NULL sont les premières) pour chaque champ de tri. Si vous ne précisez pas d’ordre de tri pour un champ de tri, Workday trie automatiquement les rangées par ordre croissant.

Exemples

Exemple : vous avez un jeu de données avec ces rangées et ces champs.
Employé
Date de vente
Sales
Goh
12/31/2018
140
Goh
11/30/2018
60
Goh
10/31/2018
140
Freeman
12/31/2018
160
Freeman
11/30/2018
60
Freeman
10/31/2018
110
Smith
12/31/2018
140
Smith
11/30/2018
60
Smith
10/31/2018
120
Vous pouvez classer les ventes de chaque employé par ordre décroissant, de sorte que les ventes les plus élevées reçoivent le classement de 1. Utilisez l’expression suivante dans le champ
Classement des ventes par employé
 :
RANK() OVER( PARTITION BY [Employee] ORDER BY [Sales] DESC)
Vous obtenez les résultats suivants :
Employé
Date de vente
Sales
Classement des ventes par employé
Goh
12/31/2018
140
1
Goh
10/31/2018
140
1
Goh
11/30/2018
60
3
Freeman
12/31/2018
160
1
Freeman
10/31/2018
110
2
Freeman
11/30/2018
60
3
Smith
12/31/2018
140
1
Smith
10/31/2018
120
2
Smith
11/30/2018
60
3
Vous pouvez également classer les ventes pour chaque date par ordre décroissant, de sorte que les ventes les plus élevées reçoivent le classement de 1. Utilisez l’expression suivante dans le champ
Classement des ventes par date
 :
RANK() OVER( PARTITION BY [Sales Date] ORDER BY [Sales] DESC)
Vous obtenez les résultats suivants :
Employé
Date de vente
Sales
Classement des ventes par date
Freeman
12/31/2018
160
1
Goh
12/31/2018
140
2
Smith
12/31/2018
140
2
Goh
11/30/2018
60
1
Freeman
11/30/2018
60
1
Smith
11/30/2018
60
1
Goh
10/31/2018
140
1
Smith
10/31/2018
120
2
Freeman
10/31/2018
110
3
Notez que les valeurs associées reçoivent le même numéro de rang et que la position de rang suivante est omise.