SQLLab
Оконные функцииСредний

LAG / LEAD

LAG возвращает значение из предыдущей строки окна, LEAD — из следующей.

Синтаксис
LAG(col [, offset [, default]]) OVER (ORDER BY col)
LEAD(col [, offset [, default]]) OVER (ORDER BY col)

Объяснение

LAG и LEAD позволяют сравнивать текущую строку с соседними без self-join. Параметры: LAG(col, offset, default) — col из строки на offset позиций назад; default — если строки нет. Типичное применение: вычислить изменение/рост между периодами.

Пример

-- Изменение продаж по сравнению с предыдущим месяцем
SELECT
  month,
  sales,
  LAG(sales) OVER (ORDER BY month) AS prev_sales,
  sales - LAG(sales) OVER (ORDER BY month) AS diff
FROM monthly_sales;