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

RANK

Omschrijving

RANK
is een aggregatiefunctie voor vensters die wordt gebruikt om een rangnummer toe te wijzen aan elke rij in een groep. Als meerdere rijen dezelfde rangordewaarde hebben (er is een gelijkspel), wordt dezelfde rangordewaarde toegewezen aan de gekoppelde rijen en wordt de volgende rangorde overgeslagen.
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 voordat ze worden gerangschikt.
De invoerrijen worden in groepen gescheiden in groepen op basis van de partitioneringsvelden, de rijen worden geordend op basis van de volgordevelden en berekent vervolgens de aggregatieexpressie (positie voor deze functie) in elke groep. De gerangschikte rijen in elke groep beginnen bij 1.

Syntaxis

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

Retourwaarde

Retourneert een waarde van het type
Integer
.

Invoerparameters

OVER()
Vereist.
OVER
moet worden gebruikt binnen a
RANK
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 Workday worden gegroepeerd in één partitie.
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.
Werknemer
Verkoopdatum
Verkoop
Goho
31-12-2018
140
Goho
30-11-2018
60
Goho
31-10-2018
140
Freeman
31-12-2018
160
Freeman
30-11-2018
60
Freeman
31-10-2018
110
Smit
31-12-2018
140
Smit
30-11-2018
60
Smit
31-10-2018
120
U kunt de verkopen voor elke werknemer in aflopende volgorde rangschikken, zodat de hoogste verkopen de rangorde van 1 krijgen. Gebruik deze expressie in het veld
'Verkopen rangschikken op werknemer'
:
RANK() OVER( PARTITION BY [Employee] ORDER BY [Sales] DESC)
U krijgt de volgende resultaten:
Werknemer
Verkoopdatum
Verkoop
Rangorde verkoop op werknemer
Goho
31-12-2018
140
1
Goho
31-10-2018
140
1
Goho
30-11-2018
60
3
Freeman
31-12-2018
160
1
Freeman
31-10-2018
110
2
Freeman
30-11-2018
60
3
Smit
31-12-2018
140
1
Smit
31-10-2018
120
2
Smit
30-11-2018
60
3
U kunt de verkopen voor elke datum ook in aflopende volgorde rangschikken, zodat de hoogste verkopen de rangorde van 1 krijgen. Gebruik deze expressie in het veld '
Verkopen rangschikken op datum'
:
RANK() OVER( PARTITION BY [Sales Date] ORDER BY [Sales] DESC)
U krijgt de volgende resultaten:
Werknemer
Verkoopdatum
Verkoop
Verkopen rangschikken op datum
Freeman
31-12-2018
160
1
Goho
31-12-2018
140
2
Smit
31-12-2018
140
2
Goho
30-11-2018
60
1
Freeman
30-11-2018
60
1
Smit
30-11-2018
60
1
Goho
31-10-2018
140
1
Smit
31-10-2018
120
2
Freeman
31-10-2018
110
3
U ziet dat gekoppelde waarden hetzelfde rangnummer krijgen en dat de volgende rangorde wordt overgeslagen.