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

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

Синтаксис

lag( expr [, offset [, default] ] )

Аргументы

  • expr: выражение любого типа.
  • offset: необязательный литерал INTEGER, указывающий смещение.
  • default: выражение того же типа, что и expr.

Возвращаемое значение

Тип результата соответствует 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