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 ligne d'un groupe. Si plusieurs lignes ont la même valeur de classement (il existe une égalité), Workday affecte la même valeur de classement aux lignes liées et ignore la position de classement suivante.
Le
PARTITION BY
La clause d'entrée détermine les champs à utiliser pour répartir un ensemble de lignes d'entrée en groupes.
Le
ORDER BY
La clause .
Workday sépare les lignes d'entrée en groupes en fonction des champs de partition, trie les lignes en fonction des champs de tri, puis calcule l'expression d'agrégation (classification pour cette fonction) dans chaque groupe. Les lignes classées dans chaque groupe commencent à 1.

Syntaxe

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

Valeur de renvoi

Renvoie une valeur de type
Integer
.

Paramètres d'entrée

OVER()
Obligatoire.
OVER
doit être utilisé dans un calendrier
RANK
expression.
PARTITION BY
partitioning_field
Est obligatoire. Utilisez l'option
PARTITION BY
clause pour spécifier un ou plusieurs champs à utiliser pour partitionner un groupe de lignes d'entrée. Vous pouvez indiquer n'importe quel type de champ sauf Devise. Exemple : si vous spécifiez le champ Mois comme champ de partitionnement, Workday regroupe donc dans une partition unique tous les enregistrements ayant la même valeur pour Mois.
ORDER BY
ordering_field
Est obligatoire. Utilisez l'option
ORDER BY
clause pour indiquer comment trier les lignes d'entrée dans la partition en utilisant les valeurs du champ spécifié dans chaque partition. Vous pouvez indiquer n'importe quel type de champ sauf Devise.
Vous pouvez utiliser la
DESC
ou
ASC
Mots-clés pour trier par ordre décroissant (valeurs de haut à bas, les valeurs NULL sont les dernières) ou par ordre croissant (valeurs de basse à haute, les valeurs NULL sont les premières) pour chaque champ de tri. Si vous n'indiquez aucun ordre de tri pour un champ de tri, Workday trie automatiquement les lignes par ordre croissant.

Exemples

Exemple : vous disposez d'un jeu de données avec les lignes et les champs suivants.
Salarié
Date de vente
Ventes
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é dans l'ordre décroissant, de sorte que les ventes les plus élevées reçoivent un classement de 1. Utilisez l'expression suivante dans le champ
Classer les ventes par salarié
 :
RANK() OVER( PARTITION BY [Employee] ORDER BY [Sales] DESC)
Vous obtenez les résultats suivants :
Salarié
Date de vente
Ventes
Classer les ventes par salarié
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 un classement de 1. Utilisez l'expression suivante dans le champ
Classer les ventes par date
 :
RANK() OVER( PARTITION BY [Sales Date] ORDER BY [Sales] DESC)
Vous obtenez les résultats suivants :
Salarié
Date de vente
Ventes
Classer les 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 liées reçoivent le même numéro de rang et que la position de rang suivante est ignorée.