FIRST
Descrizione
FIRST
è una funzione di aggregazione della finestra che suddivide le righe in gruppi, ordina le righe in base a un campo e restituisce il valore della prima 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 (prima per questa funzione) in ogni gruppo.
Sintassi
whereFIRST(input_field)OVER(PARTITION BYpartitioning_field[,partitioning_field]ORDER BYordering_field[ASC | DESC] [,ordering_field[ASC | DESC]]ROWSstart_window_boundary)start_window_boundarycan be:UNBOUNDED PRECEDING
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 qualsiasiNUMERICo aCURRENCYcampo
- OVER()
- ObbligatorioOVERdeve essere utilizzato all'interno di aFIRSTespressione
- 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 (la prima 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.APRECEDINGLa clausola definisce un limite della finestra inferiore alla riga corrente (il numero di righe da includere prima della riga corrente). Se si specifica un solo limite della finestra, il sistema utilizza la riga corrente come ultima riga nel riquadro della finestra (il limite superiore). IlUNBOUNDEDinclude tutte le righe nella direzione specificata.