аналитическая функция lag
window
Область применения: 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