LAG и LEAD — это оконные функции, которые позволяют получить доступ к значениям из предыдущих или следующих строк в одном и том же результирующем наборе — без необходимости использовать self-join или подзапросы.
LAG(column, offset, default) — получает значение из строки позади текущей строкиLEAD(column, offset, default) — получает значение из строки впереди текущей строкиoffset определяет, на сколько строк назад или вперед смотреть (по умолчанию 1)default возвращается, когда строка не существует по указанному смещениюSELECT
date,
sales,
LAG(sales, 1) OVER (ORDER BY date) AS previous_sales,
LEAD(sales, 1) OVER (ORDER BY date) AS next_sales
FROM sales_data;
В отличие от self-join, LAG и LEAD значительно лучше читаются и работают быстрее, что делает их предпочтительным подходом для сравнения строк между собой в аналитических запросах.
Функция LAG получает значения из строк, которые появляются до текущей строки в наборе результатов, а LEAD получает значения из строк, которые появляются после неё, оба параметра контролируются опциональным параметром offset.
Новый — ещё не проверен сообществом
Вы