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

ROW_NUMBER

Omschrijving

ROW_NUMBER
is een aggregatiefunctie voor vensters die rijen partitioneert in groepen, rijen ordent op een veld en een uniek volgnummer toewijst aan elke rij in een groep, te beginnen bij 1 voor de eerste rij in elke groep.
ROW_NUMBER
wijst altijd een unieke waarde toe aan elke rij in een groep. Misschien wilt u
ROW_NUMBER
om een unieke ID te maken voor elke rij in uw gegevensset.
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 moeten worden gerangschikt voordat ze een volgnummer krijgen.
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 (rijnummering voor deze functie) in elke groep. De genummerde rijen in elke groep beginnen bij 1.

Syntaxis

ROW_NUMBER
()
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
ROW_NUMBER
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 een unieke ID toewijzen aan de verkopen van elke werknemer in aflopende volgorde, zodat de hoogste verkopen de rangorde van 1 krijgen. Gebruik deze expressie in het veld
Verkoopnummer op werknemer
:
ROW_NUMBER() OVER( PARTITION BY [Employee] ORDER BY [Sales] DESC)
U krijgt de volgende resultaten:
Werknemer
Verkoopdatum
Verkoop
Aantal verkopen op werknemer
Goho
31-12-2018
140
1
Goho
31-10-2018
140
2
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 ook een unieke ID toewijzen aan de verkopen voor elke datum in aflopende volgorde, zodat de hoogste verkopen de rangorde van 1 krijgen. Gebruik deze expressie in het veld
Verkoopaantal op datum
:
ROW_NUMBER() OVER( PARTITION BY [Sales Date] ORDER BY [Sales] DESC)
U krijgt de volgende resultaten:
Werknemer
Verkoopdatum
Verkoop
Aantal verkopen op datum
Freeman
31-12-2018
160
1
Goho
31-12-2018
140
2
Smit
31-12-2018
140
3
Goho
30-11-2018
60
1
Freeman
30-11-2018
60
2
Smit
30-11-2018
60
3
Goho
31-10-2018
140
1
Smit
31-10-2018
120
2
Freeman
31-10-2018
110
3
U kunt ook . gebruiken
ROW_NUMBER
om de laatste versie te bepalen van elke rij in een gegevensset die meerdere rijen per ID bevat. In dit scenario is voor de gegevensset een datumveld vereist dat aangeeft wanneer de informatie in die rij actueel is geworden. Als u bekend bent met datawarehousingconcepten: dit is een langzaam veranderende dimensietabel van type 2. U hebt een gegevensset met deze rijen en velden.
ID
Naam
Regio
Ingangsdatum
G1
Gorman
West
01-01-2015
H1
Harris
West
01-01-2015
G1
Gorman
Oost
01-09-2016
H1
Harris
Oost
03-01-2017
H1
Harris
Nationaal
20-01-2021
Als u de waarde 1 wilt toewijzen aan de laatste versie van elke ID, gebruikt u deze expressie in het veld
Laatste versie
:
ROW_NUMBER() OVER( PARTITION BY [ID] ORDER BY [Effective Date] DESC)
U krijgt de volgende resultaten:
ID
Naam
Regio
Ingangsdatum
Meest recente versie
G1
Gorman
West
01-01-2015
2
H1
Harris
West
01-01-2015
3
G1
Gorman
Oost
01-09-2016
1
H1
Harris
Oost
03-01-2017
2
H1
Harris
Nationaal
20-01-2021
1
U kunt filteren op
de laatste versie
met behulp van een filterfase om alleen de laatste rij voor elke ID te retourneren.