Поделиться через


аналитическая функция lagwindow

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

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

Синтаксис

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

Аргументы

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

Возвраты

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

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

Если в partitionотсутствует строка с номером offset, используется указанный 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