функция окна аналитики lag

Область применения:отмечено Databricks SQL отмечено Databricks Runtime

Возвращает значение expr из предыдущей строки в разделе.

Синтаксис

lag( expr [, offset [, default] ] ) [ IGNORE NULLS | RESPECT NULLS ] OVER clause

Аргументы

  • expr: выражение любого типа.
  • offset: необязательный INTEGER литерал, указывающий смещение.
  • default: выражение того же типа, что и expr.
  • IGNORE NULLS или RESPECT NULLS: при IGNORE NULLS указании любого expr значения, NULL которое игнорируется. Значение по умолчанию — RESPECT NULLS.
  • Предложение OVER: предложение, описывающее оконное распределение. См. [] функции окна [].

Возвраты

Тип результата соответствует expr.

Если offset положительное значение исходит из строки, предшествующей текущей строке, offset указал ORDER BY в предложении OVER. Смещение на 0 использует значение текущей строки. Отрицательное смещение берет значение из строки, следующей за текущей. Если значение по умолчанию не задано offset 1, то сразу же предыдущая строка.

Если в разделе нет строки с указанным смещением, используется заданное значение default. Параметр default по умолчанию равен NULL. Вам необходимо предоставить положение ORDER BY.

Эта функция является синонимом для lead(expr, -offset, default).

Примеры

> 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