lag
Analytická funkce okna
Platí pro: Databricks SQL Databricks Runtime
Vrátí hodnotu expr
z předchozího řádku v rámci oddílu.
Syntaxe
lag( expr [, offset [, default] ] ) [ IGNORE NULLS | RESPECT NULLS ] OVER clause
Argumenty
expr
: Výraz libovolného typu.offset
: Volitelný literál INTEGER určující posun.default
: Výraz stejného typu jakoexpr
.IGNORE NULLS
neboRESPECT NULLS
: PřiIGNORE NULLS
zadání se ignoruje jakákoliexpr
hodnota, která má hodnotu NULL. Výchozí hodnota jeRESPECT NULLS
.- Klauzule OVER: Klauzule popisující okno. Viz: Funkce okna.
Návraty
Typ výsledku odpovídá expr
.
Pokud offset
je hodnota kladná, pochází z řádku předcházejícího aktuálnímu řádku zadáním offset
ORDER BY v klauzuli OVER.
Posun 0 používá hodnotu aktuálního řádku.
Záporný posun používá hodnotu z řádku za aktuálním řádkem.
Pokud ho nezadáte offset
jako výchozí hodnotu 1, bezprostředně následující řádek.
Pokud v rámci oddílu není žádný řádek na zadaném posunu, použije se zadaný default
řádek.
Výchozí hodnota default
je NULL
.
Musíte zadat klauzuli ORDER BY.
Tato funkce je synonymem pro lead(expr, -offset, default)
.
Příklady
> 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