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à.
LAGfunzione finestra
La funzione LAG window restituisce i valori di una riga con un determinato offset al di sopra (prima) della riga corrente nella partizione.
Sintassi
LAG (value_expr [, offset ]) [ IGNORE NULLS | RESPECT NULLS ] OVER ( [ PARTITION BY window_partition ] ORDER BY window_ordering )
Argomenti
- value_expr
-
L'espressione o colonna di destinazione su cui viene eseguita la funzione.
- offset
-
Un parametro facoltativo che specifica il numero di righe prima della riga corrente per le quali restituire i valori. La compensazione può essere un integer costante o un'espressione che valuta un integer. Se non viene specificato un offset, Amazon Redshift utilizza
1
come valore predefinito. Una compensazione di0
indica la riga corrente. - IGNORE NULLS
-
Una specifica facoltativa che indica che Amazon Redshift dovrebbe saltare i valori null nella determinazione della riga da utilizzare. I valori nulli vengono inclusi se non IGNORE NULLS sono elencati.
Nota
È possibile utilizzare un'COALESCEespressione NVL or per sostituire i valori nulli con un altro valore. Per ulteriori informazioni, consulta NVLe COALESCE funzioni.
- RESPECT NULLS
-
Indica che Amazon Redshift dovrebbe includere valori null nella determinazione della riga da utilizzare. RESPECTNULLSè supportato per impostazione predefinita se non lo si specifica IGNORENULLS.
- OVER
-
Specifica il partizionamento e l'ordinamento della finestra. La OVER clausola non può contenere una specifica del telaio della finestra.
- PARTITIONDI window_partition
-
Un argomento facoltativo che imposta l'intervallo di record per ogni gruppo della clausola. OVER
- ORDERDI window_ordering
-
Ordina le righe all'interno di ogni partizione.
La funzione LAG window supporta espressioni che utilizzano qualsiasi tipo di dati di Amazon Redshift. Il tipo di restituzione è lo stesso del tipo di dati di value_expr.
Esempi
L'esempio seguente mostra la quantità di biglietti venduti all'acquirente con un ID acquirente di 3 e il tempo in cui l'acquirente 3 ha acquistato i biglietti. Per confrontare ogni vendita con la vendita precedente per l'acquirente 3, la query restituisce la quantità venduta per ogni vendita precedente. Poiché non è stato effettuato alcun acquisto prima del 16/01/2008, il primo valore venduto precedentemente è null:
select buyerid, saletime, qtysold, lag(qtysold,1) over (order by buyerid, saletime) as prev_qtysold from sales where buyerid = 3 order by buyerid, saletime; buyerid | saletime | qtysold | prev_qtysold ---------+---------------------+---------+-------------- 3 | 2008-01-16 01:06:09 | 1 | 3 | 2008-01-28 02:10:01 | 1 | 1 3 | 2008-03-12 10:39:53 | 1 | 1 3 | 2008-03-13 02:56:07 | 1 | 1 3 | 2008-03-29 08:21:39 | 2 | 1 3 | 2008-04-27 02:39:01 | 1 | 2 3 | 2008-08-16 07:04:37 | 2 | 1 3 | 2008-08-22 11:45:26 | 2 | 2 3 | 2008-09-12 09:11:25 | 1 | 2 3 | 2008-10-01 06:22:37 | 1 | 1 3 | 2008-10-20 01:55:51 | 2 | 1 3 | 2008-10-28 01:30:40 | 1 | 2 (12 rows)