Funzione finestra LAG - Amazon Redshift

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 LAG

La funzione finestra LAG restituisce i valori per una riga a una data compensazione sopra (prima) la 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 di 0 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 null sono inclusi se IGNORE NULLS non è elencato.

Nota

È possibile utilizzare un'espressione NVL o COALESCE per sostituire i valori null con un altro valore. Per ulteriori informazioni, consultare Funzioni NVL e COALESCE.

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

Specifica il partizionamento e l'ordinamento della finestra. La clausola OVER non può contenere una specifica del frame della finestra.

PARTITION BY window_partition

Un argomento facoltativo che imposta l'intervallo di registrazioni per ciascun gruppo nella clausola OVER.

ORDER BY window_ordering

Ordina le righe all'interno di ogni partizione.

La funzione finestra LAG supporta le espressioni che usano uno dei tipi 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)