Аналитическая оконная функция 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