Sdílet prostřednictvím


lag Analytická funkce okna

Platí pro: zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano 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 jako expr.
  • IGNORE NULLS nebo RESPECT NULLS: Při IGNORE NULLS zadání se ignoruje jakákoli expr hodnota, která má hodnotu NULL. Výchozí hodnota je RESPECT 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