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

MIN

Descrizione

MIN
è una funzione di aggregazione della finestra che suddivide le righe in gruppi, ordina le righe in base a un campo e restituisce il valore minimo (più basso) nel gruppo.
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.
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 (minimo per questa funzione) in ogni gruppo.

Sintassi

MIN
(
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

Valore restituito

Il valore restituito è dello stesso tipo di campo del valore di input.

Parametri di input

input_field
Sono obbligatori. Campo in cui eseguire la funzione di aggregazione. È possibile utilizzare qualsiasi campo numerico o un campo Valuta.
OVER()
Obbligatorio
OVER
deve essere utilizzato all'interno di a
MIN
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. Tuttavia, quando si utilizza un campo è necessario utilizzare un tipo di campo numerico, ad esempio Intero o Numerico
RANGE
clausola
È 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.
RIGHE | RANGE
Sono obbligatori. Il
ROWS
e
RANGE
Le clausole definiscono il numero specifico di righe (rispetto alla riga corrente) all'interno della partizione specificando un frame della finestra. Il frame della finestra viene definito specificando i punti di inizio e di fine all'interno della partizione, noti come limiti della finestra. La cornice della finestra è l'insieme di righe di input in ogni partizione su cui calcolare l'espressione aggregata (minimo per questa funzione). La cornice della finestra può includere una, più o tutte le righe della partizione.
Entrambi
ROWS
e
RANGE
specificare l'intervallo di righe relativo alla riga corrente, ma
RANGE
opera logicamente sui valori (associazione logica) e
ROWS
opera fisicamente sulle righe del set di dati (associazione fisica).
RANGE
limita la cornice della finestra a contenere righe con valori all'interno dell'intervallo specificato, rispetto al valore corrente.
ROWS
limita la cornice della finestra a contenere righe che si trovano fisicamente accanto alla riga corrente.
Utilizzare
RANGE
per definire i limiti assoluti della finestra, ad esempio gli ultimi 3 mesi o il progressivo annuale. Quando si utilizza
RANGE
, il
ORDER BY
La clausola deve utilizzare un tipo di campo numerico, ad esempio Intero o Numerico.
Esempio: si supponga di avere un campo Intero chiamato MonthNum che rappresenta il numero del mese dell'anno (valori da 1 a 12). Per specificare tutti i valori degli ultimi 3 mesi, ordinare per MonthNum e utilizzare
RANGE BETWEEN 2 PRECEDING AND CURRENT ROW
. Questa clausola RANGE include il mese corrente e i due mesi precedenti, per un totale di 3 mesi.
Quando si pubblica un set di dati che contiene una funzione finestra utilizzando
RANGE
, il numero di righe nella finestra deve essere un massimo di 1000. Se una determinata finestra supera le 1000 righe, il job di pubblicazione non riesce.
win_boundary
Sono obbligatori. I limiti della finestra definiscono i punti di inizio e di fine della cornice della finestra. I limiti della finestra sono relativi alla riga corrente.
A
PRECEDING
La clausola definisce un limite della finestra inferiore alla riga corrente (il numero di righe da includere prima della riga corrente). Il
FOLLOWING
La clausola definisce un limite della finestra superiore alla riga corrente (il numero di righe da includere dopo la riga corrente).
Se si specifica un solo limite della finestra, il sistema utilizza la riga corrente come altro limite nel riquadro della finestra (il limite superiore o inferiore a seconda della sintassi dell'espressione). Il
UNBOUNDED
include tutte le righe nella direzione specificata. Quando è necessario specificare sia l'inizio che la fine di un frame di una finestra, utilizzare
BETWEEN
e
AND
parole chiave
Quando si specifica un numero specifico di righe, il
valore
deve essere inferiore o uguale a 100.
Esempio:
ROWS 2 PRECEDING
significa che la dimensione della finestra è di 3 righe, a partire da 2 righe che precedono fino al e includono la riga corrente.
Esempio:
ROWS UNBOUNDED FOLLOWING
significa che la finestra inizia con la riga corrente e include la riga corrente e tutte le righe successive alla riga corrente.

Esempi

Esempio: si dispone di un set di dati con queste righe e questi campi.
Organizzazione di supervisione
Trimestre
Nome
Modifica comp
Marketing
2019-Q1
Ehi
2000.00
Marketing
2019-Q1
Freeman
1000,00
Marketing
2019-Q1
Smith
2500.00
Consulenza
2019-Q1
Gomez
5000.00
Consulenza
2019-Q1
Kimura
3000.00
Consulenza
2019-Q1
Fitz
3500.00
Consulenza
2019-Q2
Gomez
0
Consulenza
2019-Q2
Kimura
2000.00
Consulenza
2019-Q2
Fitz
1.500,00
È possibile calcolare la variazione più bassa della retribuzione (campo
Modifica comp
) per ogni organizzazione di supervisione in ogni trimestre.
Per garantire che il sistema restituisca lo stesso valore per ogni riga di una partizione, ordinare le righe in ordine crescente (
ASC
) in base allo stesso campo del campo di input, in modo che la modifica della retribuzione più bassa venga prima in ogni partizione.
Utilizzare questa espressione nel campo
Min Comp Change
:
MIN([Comp Change]) OVER( PARTITION BY [Supervisory Org], [Quarter] ORDER BY [Comp Change] ASC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING )
Si ottengono i seguenti risultati:
Organizzazione di supervisione
Trimestre
Nome
Modifica comp
Min variazione comp
Consulenza
2019-Q1
Kimura
3000.00
3000.00
Consulenza
2019-Q1
Fitz
3500.00
3000.00
Consulenza
2019-Q1
Gomez
5000.00
3000.00
Consulenza
2019-Q2
Gomez
0
0
Consulenza
2019-Q2
Fitz
1.500,00
0
Consulenza
2019-Q2
Kimura
2000.00
0
Marketing
2019-Q1
Freeman
1000,00
1000,00
Marketing
2019-Q1
Ehi
2000.00
1000,00
Marketing
2019-Q1
Smith
2500.00
1000,00