lag
-Analysefensterfunktion
Gilt für: Databricks SQL Databricks Runtime
Gibt den Wert von expr
aus einer vorangehenden Zeile innerhalb der Partition zurück.
Syntax
lag( expr [, offset [, default] ] ) [ IGNORE NULLS | RESPECT NULLS ] OVER clause
Argumente
expr
: Ein Ausdruck beliebigen Typsoffset
: Ein optionales INTEGER-Literal, das den Offset angibt.default
: Ein Ausdruck desselben Typs wieexpr
.IGNORE NULLS
oderRESPECT NULLS
: WennIGNORE NULLS
verwendet wird, wird jederexpr
-Wert, der NULL ist, ignoriert. Der Standardwert lautetRESPECT NULLS
.- OVER-Klausel: Die Klausel, welche die Fenstererstellung beschreibt. Siehe Fensterfunktionen.
Gibt zurück
Der Ergebnistyp entspricht expr
.
Wenn offset
positiv ist, stammt der Wert aus der Zeile, die der aktuellen Zeile versetzt um offset
(angegeben über ORDER BY in der OVER-Klausel) folgt.
Bei einem Offset von 0 wird der Wert der aktuellen Zeile verwendet.
Bei einem negativen Offset wird der Wert aus einer Zeile nach der aktuellen Zeile verwendet.
Wenn Sie offset
nicht angeben, ist der Standardwert 1 (die unmittelbar folgende Zeile).
Wenn innerhalb der Partition keine Zeile am angegebenen Offset vorhanden ist, wird der angegebene default
-Wert verwendet.
Der Standardwert von default
lautet NULL
.
Sie müssen eine ORDER BY-Klausel angeben.
Diese Funktion ist ein Synonym für lead(expr, -offset, default)
.
Beispiele
> SELECT a, b, lag(b) OVER (PARTITION BY a ORDER BY b)
FROM VALUES ('A1', 2), ('A1', 1), ('A2', 3), ('A1', 1) tab(a, b);
A1 1 NULL
A1 1 1
A1 2 1
A2 3 NULL