Passa al contenuto principale
Workday User Guide
Ultimo aggiornamento: 2023-06-23
RANK

RANK

Descrizione

RANK
è una funzione di aggregazione della finestra utilizzata per assegnare un numero di classifica a ogni riga di un gruppo. Se più righe hanno lo stesso valore di classifica (è presente una parità), il sistema assegna lo stesso valore di classifica alle righe abbinate e ignora la posizione di classifica successiva.
Il
PARTITION BY
La clausola determina i campi da utilizzare per suddividere un insieme di righe di input in gruppi.
Il
ORDER BY
La clausola determina come ordinare le righe nella partizione prima che vengano classificate.
Il sistema separa le righe di input in gruppi in base ai campi di partizionamento, ordina le righe in base ai campi di ordinamento e quindi calcola l'espressione aggregata (classifica per questa funzione) in ogni gruppo. Le righe classificate in ogni gruppo iniziano da 1.

Sintassi

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

Valore restituito

Restituisce un valore di tipo
Integer
.

Parametri di input

OVER()
Obbligatorio
OVER
deve essere utilizzato all'interno di a
RANK
espressione
PARTITION BY
partitioning_field
Sono obbligatori. Utilizzare il
PARTITION BY
per specificare uno o più campi da utilizzare per partizionare un gruppo di righe di input. È possibile specificare qualsiasi tipo di campo tranne Valuta. Esempio: si specifica il campo Mese come campo di partizionamento, in modo che il sistema raggruppa in un'unica partizione tutti i record che hanno lo stesso valore per il mese.
ORDER BY
ordering_field
Sono obbligatori. Utilizzare il
ORDER BY
per specificare come ordinare le righe di input nella partizione utilizzando i valori nel campo specificato all'interno di ogni partizione. È possibile specificare qualsiasi tipo di campo tranne Valuta.
È possibile utilizzare
DESC
o
ASC
per ordinare le parole chiave in ordine decrescente (valori da decrescente, valori NULL ultimi) o crescente (valori decrescenti, valori NULL primi) per ogni campo di ordinamento. Se non si specifica un ordinamento per un campo di ordinamento, il sistema ordina automaticamente le righe in ordine crescente.

Esempi

Esempio: si dispone di un set di dati con queste righe e questi campi.
Dipendente
Data vendita
Vendite
Ehi
12/31/2018
140
Ehi
11/30/2018
60
Ehi
10/31/2018
140
Freeman
12/31/2018
160
Freeman
11/30/2018
60
Freeman
10/31/2018
110
Smith
12/31/2018
140
Smith
11/30/2018
60
Smith
10/31/2018
120
È possibile classificare le vendite di ogni dipendente in ordine decrescente, in modo che alle vendite più alte venga assegnato un punteggio pari a 1. Utilizzare questa espressione nel campo
Classificazione vendite per dipendente
:
RANK() OVER( PARTITION BY [Employee] ORDER BY [Sales] DESC)
Si ottengono i seguenti risultati:
Dipendente
Data vendita
Vendite
Classificare le vendite per dipendente
Ehi
12/31/2018
140
1
Ehi
10/31/2018
140
1
Ehi
11/30/2018
60
3
Freeman
12/31/2018
160
1
Freeman
10/31/2018
110
2
Freeman
11/30/2018
60
3
Smith
12/31/2018
140
1
Smith
10/31/2018
120
2
Smith
11/30/2018
60
3
È anche possibile classificare le vendite per ogni data in ordine decrescente, in modo che alle vendite più alte venga assegnata una classifica di 1. Utilizzare questa espressione nel campo
Classificazione vendite per data
:
RANK() OVER( PARTITION BY [Sales Date] ORDER BY [Sales] DESC)
Si ottengono i seguenti risultati:
Dipendente
Data vendita
Vendite
Classificare le vendite per data
Freeman
12/31/2018
160
1
Ehi
12/31/2018
140
2
Smith
12/31/2018
140
2
Ehi
11/30/2018
60
1
Freeman
11/30/2018
60
1
Smith
11/30/2018
60
1
Ehi
10/31/2018
140
1
Smith
10/31/2018
120
2
Freeman
10/31/2018
110
3
Si noti che ai valori abbinati viene assegnato lo stesso numero di classifica e la posizione della classifica seguente viene ignorata.