LAST
Descrizione
LAST
è una funzione di aggregazione della finestra che suddivide le righe in gruppi, ordina le righe in base a un campo e restituisce il valore dell'ultima riga del 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 (ultima per questa funzione) in ogni gruppo.
Sintassi
whereLAST(input_field)OVER(PARTITION BYpartitioning_field[,partitioning_field]ORDER BYordering_field[ASC | DESC] [,ordering_field[ASC | DESC]]ROWSBETWEENstart_window_boundaryANDend_window_boundary)start_window_boundarycan be:and whereCURRENT ROWend_window_boundarycan be:UNBOUNDED FOLLOWING
Valore restituito
Restituisce un valore dello stesso tipo di
input_field
.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()
- ObbligatorioOVERdeve essere utilizzato all'interno di aLASTespressione
- PARTITION BYpartitioning_field
- Sono obbligatori. Utilizzare ilPARTITION BYper 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 BYordering_field
- Sono obbligatori. Utilizzare ilORDER BYper 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 utilizzareDESCoASCper 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.
- ROWS
- Sono obbligatori. IlROWSLa clausola definisce 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, relative alla riga corrente, su cui calcolare l'espressione aggregata (ultima per questa funzione). La cornice della finestra può includere una, più o tutte le righe della partizione.
- window_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.AFOLLOWINGLa clausola definisce un limite della finestra dopo la riga corrente (il numero di righe da includere dopo la riga corrente). Il sistema utilizza la riga corrente come prima riga nel riquadro della finestra (il limite inferiore). IlUNBOUNDEDinclude tutte le righe nella direzione specificata.