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


Аналитическая оконная функция lead

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

Возвращает значение expr из последующей строки в разделе. Эта функция является синонимом для lag(expr, -offset, default).

Синтаксис

lead(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.

Примеры

> SELECT a, b, lead(b) OVER (PARTITION BY a ORDER BY b)
    FROM VALUES ('A1', 2), ('A1', 1), ('A2', 3), ('A1', 1) tab(a, b);
 A1 1   1
 A1 1   2
 A1 2   NULL
 A2 3   NULL