LAGfonction de fenêtre - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

LAGfonction de fenêtre

La fonction LAG window renvoie les valeurs d'une ligne à un décalage donné au-dessus (avant) de la ligne actuelle de la partition.

Syntaxe

LAG (value_expr [, offset ]) [ IGNORE NULLS | RESPECT NULLS ] OVER ( [ PARTITION BY window_partition ] ORDER BY window_ordering )

Arguments

value_expr

Colonne cible ou expression sur laquelle la fonction opère.

offset

Paramètre facultatif qui spécifie le nombre de lignes avant la ligne actuelle pour lesquelles renvoyer des valeurs. Le décalage peut être un nombre entier constant ou une expression qui a pour valeur un nombre entier. Si vous ne spécifiez pas de décalage, Amazon Redshift utilise 1 comme valeur par défaut. Un décalage de 0 indique la ligne actuelle.

IGNORE NULLS

Spécification facultative qui indique qu’Amazon Redshift doit ignorer les valeurs null pour déterminer les lignes à utiliser. Les valeurs nulles sont incluses si elles ne IGNORE NULLS sont pas répertoriées.

Note

Vous pouvez utiliser une COALESCE expression NVL ou pour remplacer les valeurs nulles par une autre valeur. Pour de plus amples informations, veuillez consulter NVLet COALESCE fonctions.

RESPECT NULLS

Indique qu’Amazon Redshift doit contenir des valeurs null pour déterminer la ligne à utiliser. RESPECTNULLSest pris en charge par défaut si vous ne le spécifiez pas IGNORENULLS.

OVER

Spécifie le partitionnement de fenêtrage et d’ordonnancement. La OVER clause ne peut pas contenir de spécification de cadre de fenêtre.

PARTITIONPAR window_partition

Argument facultatif qui définit la plage d'enregistrements pour chaque groupe de la OVER clause.

ORDERPAR window_ordering

Trie les lignes dans chaque partition.

La fonction LAG window prend en charge les expressions qui utilisent n'importe quel type de données Amazon Redshift. Le type de retour est identique au type value_expr.

Exemples

L’exemple suivant présente la quantité de billets vendus à l’acheteur ayant l’ID d’acheteur 3 et l’heure à laquelle l’acheteur 3 a acheté les billets. Pour comparer chaque vente à la vente précédente de l’acheteur 3, la requête renvoie la quantité précédente vendue pour chaque vente. Dans la mesure où il n’y a aucun achat avant le 16/01/2008, la première quantité précédente vendue a la valeur 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)