Загрузка...
Справочник по функциям и операторам SQL

LAG

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

Синтаксис

LAG(expression, offset, default) OVER (PARTITION BY column1, column2, ... ORDER BY column1 [ASC|DESC], column2 [ASC|DESC])
  • expression: Выражение, значение которого будет возвращено
  • offset: (необязательно) Количество строк до текущей строки, откуда будет возвращено значение. По умолчанию offset равен 1
  • default: (необязательно) Значение, возвращаемое, если offset выходит за пределы набора строк. По умолчанию default равен NULL
  • PARTITION BY: (необязательно) Разделяет набор строк в группы, для каждой из которых функция LAG будет вычислена независимо
  • ORDER BY: Упорядочивает строки внутри каждой группы (если используется PARTITION BY) или всего набора строк, определяя порядок для смещения

Например:

SELECT id, company_id, salary, LAG(salary, 1, NULL) OVER (PARTITION BY company_id ORDER BY salary) AS previous_salary FROM Client; -- Результат: Столбец previous_salary с предыдущей зарплатой в пределах каждой компании; если предыдущей строки нет, возвращает 0

Пример

Сможете решить задачу с использованием LAG?

Решать бесплатно!