Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Funzione finestra LAST_VALUE
In un set di righe ordinato, la funzione LAST_VALUE restituisce il valore dell'espressione rispetto all'ultima riga nel frame.
Per informazioni sulla selezione della prima riga nel frame, consulta Funzione finestra FIRST_VALUE.
Sintassi
LAST_VALUE( expression )[ IGNORE NULLS | RESPECT NULLS ] OVER ( [ PARTITION BY expr_list ] [ ORDER BY order_list frame_clause ] )
Argomenti
- espressione
-
L'espressione o colonna di destinazione su cui viene eseguita la funzione.
- IGNORE NULLS
-
La funzione restituisce l'ultimo valore nel frame che non è NULL (o NULL se tutti i valori sono NULL).
- RESPECT NULLS
-
Indica che Amazon Redshift dovrebbe includere valori null nella determinazione della riga da utilizzare. RESPECT NULLS è supportato come impostazione predefinita se non si specifica IGNORE NULLS.
- OVER
-
Presenta le clausole finestra per la funzione.
- PARTITION BY expr_list
-
Definisce la finestra per la funzione in termini di una o più espressioni.
- ORDER BY order_list
-
Ordina le righe all'interno di ogni partizione. Se non viene specificata nessuna clausola PARTITION BY, ORDER BY ordina l'intera tabella. Se si specifica una clausola ORDER BY, è necessario anche specificare una frame_clause.
I risultati dipendono dall'ordinamento dei dati. I risultati sono non deterministici nei seguenti casi:
-
Quando non è specificata alcuna clausola ORDER BY e una partizione contiene due valori diversi per un'espressione
-
Quando l'espressione valuta valori diversi che corrispondono allo stesso valore nell'elenco ORDER BY.
-
- frame_clause
-
Se una clausola ORDER BY viene utilizzata per una funzione di aggregazione, è necessaria una clausola del frame esplicita. La clausola frame raffina l'insieme di righe in una finestra della funzione, includendo o escludendo insieme di righe nel risultato ordinato. La clausola frame è composta dalla parola chiave ROWS e dagli specificatori associati. Per informazioni, consultare Riepilogo della sintassi della funzione finestra.
Tipo restituito
Queste funzioni supportano le espressioni che usano tipi di dati primitivi di Amazon Redshift. Il tipo restituito è lo stesso del tipo di dati di expression.
Esempi
Gli esempi seguenti utilizzano la tabella VENUE dai dati di esempio di TICKIT. Per ulteriori informazioni, consulta Database di esempio.
L'esempio seguente restituisce la capacità di posto per ciascuna posizione nella tabella VENUE, con i risultati ordinati in base alla capacità (da alta a bassa). La funzione LAST_VALUE viene utilizzata per selezionare il nome del luogo corrispondente all'ultima riga nel frame: in questo caso, la riga con il numero più basso di posti. I risultati sono partizionati per stato, quindi quando il valore VENUESTATE cambia, viene selezionato un nuovo ultimo valore. Il frame della finestra è illimitato, quindi lo stesso ultimo valore è selezionato per ogni riga in ogni partizione.
Per la California, Shoreline Amphitheatre
viene restituito per ogni riga nella partizione perché ha il numero più basso di posti (22000
).
select venuestate, venueseats, venuename,
last_value(venuename)
over(partition by venuestate
order by venueseats desc
rows between unbounded preceding and unbounded following)
from (select * from venue where venueseats >0)
order by venuestate;
venuestate | venueseats | venuename | last_value
-----------+------------+--------------------------------+------------------------------
CA | 70561 | Qualcomm Stadium | Shoreline Amphitheatre
CA | 69843 | Monster Park | Shoreline Amphitheatre
CA | 63026 | McAfee Coliseum | Shoreline Amphitheatre
CA | 56000 | Dodger Stadium | Shoreline Amphitheatre
CA | 45050 | Angel Stadium of Anaheim | Shoreline Amphitheatre
CA | 42445 | PETCO Park | Shoreline Amphitheatre
CA | 41503 | AT&T Park | Shoreline Amphitheatre
CA | 22000 | Shoreline Amphitheatre | Shoreline Amphitheatre
CO | 76125 | INVESCO Field | Coors Field
CO | 50445 | Coors Field | Coors Field
DC | 41888 | Nationals Park | Nationals Park
FL | 74916 | Dolphin Stadium | Tropicana Field
FL | 73800 | Jacksonville Municipal Stadium | Tropicana Field
FL | 65647 | Raymond James Stadium | Tropicana Field
FL | 36048 | Tropicana Field | Tropicana Field
...