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

MAX

Description

MAX
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 maximum (la plus élevée) du 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 (maximum pour cette fonction) dans chaque groupe.

Syntaxe

MAX
(
input_field
)
OVER
(
PARTITION BY
partitioning_field
[,
partitioning_field
]
ORDER BY
ordering_field
[ASC | DESC] [,
ordering_field
[ASC | DESC]]
RANGE
BETWEEN
value
PRECEDING
AND
CURRENT ROW
|
ROWS
win_boundary
|
BETWEEN
win_boundary
AND
win_boundary
)
where
win_boundary
can be:
UNBOUNDED PRECEDING
value
PRECEDING
UNBOUNDED FOLLOWING
value
FOLLOWING
CURRENT ROW

Valeur de renvoi

La valeur renvoyée est du même type de champ que la valeur saisie.

Paramètres d'entrée

input_field
Est obligatoire. Le champ sur lequel exécuter la fonction d'agrégation. Vous pouvez utiliser n'importe quel champ numérique ou Devise.
OVER()
Obligatoire.
OVER
doit être utilisé dans un calendrier
MAX
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 devez cependant utiliser un type de champ numérique, tel que Nombre entier ou Numérique lorsque vous utilisez le
RANGE
clause.
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.
ROWS | PLAGE DES VALEURS
Est obligatoire. Le
ROWS
et
RANGE
Les clauseS définissent le nombre spécifique de lignes (par rapport à la ligne en cours) dans la partition en spécifiant une zone de fenêtre. Vous définissez le cadre de la fenêtre en indiquant des points de début et de fin dans la partition, appelés limites de la fenêtre. L'intervalle de fenêtre est l'ensemble des lignes d'entrée dans chaque partition sur lesquelles calculer l'expression d'agrégation (maximum pour cette fonction). Le cadre de la fenêtre peut inclure une, plusieurs ou toutes les lignes de la partition.
Les deux
ROWS
et
RANGE
indiquez la plage de lignes par rapport à la ligne actuelle, mais
RANGE
opère de façon logique sur les valeurs (association logique) et
ROWS
opère réellement sur les lignes du jeu de données (association physique).
RANGE
limite le cadre de la fenêtre de manière à contenir les lignes dont les valeurs sont comprises dans la plage spécifiée, par rapport à la valeur actuelle.
ROWS
limite le cadre de la fenêtre afin qu'il puisse contenir les lignes qui se trouvent immédiatement à côté de la ligne actuelle.
Utiliser
RANGE
pour définir les limites de fenêtre absolues, telles que les trois derniers mois ou le cumul depuis le début de l'exercice. Lorsque vous utilisez
RANGE
, le
ORDER BY
La clause doit utiliser un type de champ numérique, tel que Entier ou Numérique.
Exemple : imaginons que vous avez un champ Entier nommé MonthNum qui représente le nombre de mois dans l'année (valeurs 1 à 12). Pour indiquer toutes les valeurs des trois derniers mois, vous procéderez à un tri par MonthNum et utiliser
RANGE BETWEEN 2 PRECEDING AND CURRENT ROW
. Cette clause RANGE inclut le mois en cours et les deux mois précédents, ce qui donne un total de trois mois.
Lorsque vous publiez un jeu de données contenant une fonction de fenêtre en utilisant
RANGE
, le nombre de lignes dans la fenêtre doit être inférieur ou égal à 1 000. Si une fenêtre particulière dépasse 1 000 lignes, la tâche de publication échoue.
sélectionnés
Est obligatoire. Les limites de fenêtre définissent les points de début et de fin du cadre de la fenêtre. Les limites de la fenêtre sont exprimées en fonction de la ligne en cours.
A
PRECEDING
La clause définit une limite de fenêtre inférieure à la ligne en cours (nombre de lignes à inclure avant la ligne en cours). Le
FOLLOWING
La clause définit une limite de fenêtre supérieure à la ligne en cours (nombre de lignes à inclure après la ligne en cours).
Si vous indiquez une seule limite de fenêtre, Workday utilise la ligne en cours comme autre limite dans le cadre de fenêtre (limite supérieure ou inférieure selon la syntaxe de l'expression). Le
UNBOUNDED
Le mot-clé inclut toutes les lignes dans le sens indiqué. Lorsque vous devez indiquer à la fois le début et la fin d'un cadre de fenêtre, utilisez l'option
BETWEEN
et
AND
Mots-clés.
Lorsque vous indiquez un nombre spécifique de lignes, la
valeur
doit être inférieure ou égale à 100.
Exemple :
ROWS 2 PRECEDING
signifie que la fenêtre a 3 lignes, en commençant par 2 lignes précédant et incluant la ligne en cours.
Exemple :
ROWS UNBOUNDED FOLLOWING
signifie que la fenêtre commence par la ligne en cours et inclut la ligne en cours ainsi que toutes les lignes qui suivent cette ligne.

Exemples

Exemple : vous disposez d'un jeu de données avec les lignes et les champs suivants.
Organisation hiérarchique
Trimestre
Nom
Modification de la rémunération
Marketing
2019-Q1
Goh
2000.00
Marketing
2019-Q1
Freeman
1 000
Marketing
2019-Q1
Smith
2 500,00
Consulting
2019-Q1
Gomez
5 000,00
Consulting
2019-Q1
Kimura
3000.00
Consulting
2019-Q1
Fitz
3 500,00
Consulting
2019-Q2
Gomez
0
Consulting
2019-Q2
Kimura
2000.00
Consulting
2019-Q2
Fitz
1 500,00
Vous pouvez calculer la variation de la rémunération la plus élevée (champ
Modification de la rémunération
) pour chaque organisation hiérarchique de chaque trimestre.
Pour s'assurer que Workday renvoie la même valeur pour chaque ligne d'une partition, triez les lignes par ordre décroissant (
DESC
) en fonction du même champ que celui du champ d'entrée afin que la modification de la rémunération la plus élevée ait lieu en premier dans chaque partition.
Utilisez l'expression suivante dans le champ
Modification de la rémunération maximale
 :
MAX([Comp Change]) OVER( PARTITION BY [Supervisory Org], [Quarter] ORDER BY [Comp Change] DESC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING )
Vous obtenez les résultats suivants :
Organisation hiérarchique
Trimestre
Nom
Modification de la rémunération
Modification de la rémunération maximum
Consulting
2019-Q1
Gomez
5 000,00
5 000,00
Consulting
2019-Q1
Fitz
3 500,00
5 000,00
Consulting
2019-Q1
Kimura
3000.00
5 000,00
Consulting
2019-Q2
Kimura
2000.00
2000.00
Consulting
2019-Q2
Fitz
1 500,00
2000.00
Consulting
2019-Q2
Gomez
0
2000.00
Marketing
2019-Q1
Smith
2 500,00
2 500,00
Marketing
2019-Q1
Goh
2000.00
2 500,00
Marketing
2019-Q1
Freeman
1 000
2 500,00