Skip to main content
Workday User Guide
Laatst bijgewerkt: 2023-06-23
LEAD

LEAD

Omschrijving

LEAD
is een aggregatiefunctie voor vensters die rijen partitioneert in groepen, rijen ordent op een veld en de waarde van een veld in de rij op de opgegeven verschuiving na (onder) de huidige rij in de groep retourneert.
De
PARTITION BY
bepaalt welke velden moeten worden gebruikt om een set invoerrijen in groepen te partitioneren. De
ORDER BY
bepaalt hoe de rijen in de partitie worden gerangschikt.
De invoerrijen worden in groepen verdeeld in groepen op basis van de partitioneringsvelden, de rijen worden geordend op basis van de volgordevelden en vervolgens de aggregatieexpressie (lead voor deze functie) in elke groep berekend.

Syntaxis

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

Retourwaarde

Retourneert één waarde per rij van hetzelfde type als het
invoerveld
.

Invoerparameters

input_field
Vereist. Het veld waarop de aggregatiefunctie moet worden uitgevoerd. U kunt elk veldtype opgeven.
verschuiving
Optioneel. Het aantal rijen na de huidige rij waarvan de waarde moet worden geretourneerd. Moet een letterlijk getal zijn dat groter is dan of gelijk is aan nul (0) en kleiner is dan of gelijk is aan 100. Als u de verschuiving niet opgeeft, wordt in Workday de waarde 1 gebruikt.
default_value
Optioneel. De waarde die deze functie retourneert wanneer de verschuivingsrij buiten het momenteel gedefinieerde venster valt of wanneer de waarde in de verschuivingsrij NULL is.
standaardwaarde
moet van hetzelfde type zijn als
invoerveld
. Als u geen standaardwaarde opgeeft, wordt de waarde NULL gebruikt.
OVER()
Vereist.
OVER
moet worden gebruikt binnen a
LEAD
expressie.
PARTITION BY
partitioning_field
Vereist. De . gebruiken
PARTITION BY
om een of meer velden op te geven voor het partitioneren van een groep invoerrijen. U kunt elk veldtype opgeven, behalve Valuta. Voorbeeld: u geeft het veld Maand op als het partitioneringsveld, zodat alle records met dezelfde waarde voor Maand in één partitie worden gegroepeerd.
ORDER BY
ordering_field
Vereist. De . gebruiken
ORDER BY
om op te geven hoe de invoerrijen in de partitie moeten worden geordend met behulp van de waarden in het opgegeven veld binnen elke partitie. U kunt elk veldtype opgeven, behalve Valuta.
U kunt de gebruiken
DESC
of
ASC
trefwoorden om te sorteren in aflopende volgorde (van hoge naar lage waarden, NULL-waarden zijn laatste) of oplopende volgorde (van lage naar hoge waarden, NULL-waarden zijn eerst) voor elk bestelveld. Als u geen sorteervolgorde voor een bestelveld opgeeft, worden de rijen automatisch in oplopende volgorde gesorteerd.

Voorbeelden

Voorbeeld: u hebt een gegevensset met deze rijen en velden.
row_ID
Employee_Name
Eff_Date
Salaris
1
Goho
01-01-18
49000
2
Goho
01-01-19
56000
3
Goho
1-1-17
44000
4
Freeman
01-01-18
65000
5
Freeman
1-1-17
57000
6
Freeman
01-01-19
69000
7
Smit
01-01-18
51000
8
Smit
01-01-19
56000
9
Smit
01-01-16
44000
U kunt de rijen voor elke werknemer in aflopende volgorde (
DESC
) ordenen op het veld ingangsdatum (
Eff_Date
), zodat het meest recente salaris als eerste in elke partitie wordt geplaatst.
Gebruik deze expressie in het veld
Salary_Increase
om de salariswijziging tussen elke wijziging van de ingangsdatum te berekenen:
[Salary] - (LEAD([Salary], 1, [Salary]) OVER( PARTITION BY [Employee_Name] ORDER BY [Eff_Date] DESC) )
U krijgt de volgende resultaten:
row_ID
Employee_Name
Eff_Date
Salaris
Salary_Increase
2
Goho
01-01-19
56000
7000
1
Goho
01-01-18
49000
5000
3
Goho
1-1-17
44000
0
6
Freeman
01-01-19
69000
4000
4
Freeman
01-01-18
65000
8000
5
Freeman
1-1-17
57000
0
8
Smit
01-01-19
56000
5000
7
Smit
01-01-18
51000
7000
9
Smit
01-01-16
44000
0