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