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

LEAD

Description

LEAD
est une fonction d'agrégation de fenêtre qui répartit les lignes en groupes, trie les lignes en fonction d'un champ et renvoie la valeur d'un champ de la ligne au décalage spécifié après (en dessous de) la ligne actuelle dans le groupe.
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, classe les lignes en fonction des champs de tri, puis calcule l'expression d'agrégation (principale pour cette fonction) dans chaque groupe.

Syntaxe

LEAD
(
input_field
,
offset
,
default_value
)
OVER
(
PARTITION BY
partitioning_field
[,
partitioning_field
]
ORDER BY
ordering_field
[ASC | DESC] [,
ordering_field
[ASC | DESC]] )

Valeur de renvoi

Renvoie une valeur par ligne du même type que le
champ Input_field
.

Paramètres d'entrée

input_field
Est obligatoire. Le champ sur lequel exécuter la fonction d'agrégation. Vous pouvez indiquer n'importe quel type de champ.
offset
Facultatif. Nombre de lignes après la ligne en cours dont la valeur doit être renvoyée. Doit être un nombre littéral supérieur ou égal à zéro (0) et inférieur ou égal à 100. Si vous n'indiquez pas de décalage, Workday utilise la valeur 1.
default_value
Facultatif. La valeur cette fonction renvoie lorsque la ligne de décalage est en dehors de la fenêtre actuellement définie ou lorsque la valeur de la ligne de décalage est NULL.
default_value
doit être du même type que
Input_field
. Si vous n'indiquez pas de valeur par défaut, Workday utilise la valeur NULL.
OVER()
Obligatoire.
OVER
doit être utilisé dans un calendrier
LEAD
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.
row_ID
Employee_Name
Eff_Date
Salaire
1
Goh
1/1/18
49000
2
Goh
1/1/19
56000
3
Goh
01/01/17
44000
4
Freeman
1/1/18
65000
5
Freeman
01/01/17
57000
6
Freeman
1/1/19
69000
7
Smith
1/1/18
51000
8
Smith
1/1/19
56000
9
Smith
1/1/16
44000
Vous pouvez classer les lignes pour chaque employé dans l'ordre décroissant (
DUSC
) en fonction du champ de date d'effet (
Effect_Date
) de sorte que le salaire le plus récent apparaît en premier dans chaque partition.
Utilisez l'expression suivante dans le champ
Salary_Increase
pour calculer la modification du salaire entre chaque modification de la date d'effet :
[Salary] - (LEAD([Salary], 1, [Salary]) OVER( PARTITION BY [Employee_Name] ORDER BY [Eff_Date] DESC) )
Vous obtenez les résultats suivants :
row_ID
Employee_Name
Eff_Date
Salaire
Salary_Increase
2
Goh
1/1/19
56000
7000
1
Goh
1/1/18
49000
5 000
3
Goh
01/01/17
44000
0
6
Freeman
1/1/19
69000
4 000
4
Freeman
1/1/18
65000
8000
5
Freeman
01/01/17
57000
0
8
Smith
1/1/19
56000
5 000
7
Smith
1/1/18
51000
7000
9
Smith
1/1/16
44000
0