Предыдущая дата заказа
Из таблицы purchase_orders для каждого supplier_id выведите creation_date, предыдущую дату создания заказа и разницу между датами.
Функции смещения и выбора позволяют смотреть не только на текущую строку, но и на соседние или крайние строки внутри окна.
LAG() возвращает значение из предыдущей строки, а LEAD() — из следующей строки в порядке, заданном внутри OVER.
FIRST_VALUE(), LAST_VALUE() и NTH_VALUE() выбирают первое, последнее или n-е значение в окне.
Ключевая конструкция урока: function(column) OVER (PARTITION BY group_column ORDER BY sort_column).
Минимальный пример: LAG(creation_date) OVER (PARTITION BY supplier_id ORDER BY creation_date) показывает предыдущую дату заказа поставщика.
Топ-3 ошибки: забыть ORDER BY, перепутать направление LEAD/LAG, использовать LAST_VALUE без явной рамки окна.
Из таблицы purchase_orders для каждого supplier_id выведите creation_date, предыдущую дату создания заказа и разницу между датами.
Измените предыдущий запрос так, чтобы получить одно значение: среднее количество дней между двумя заказами.
Напишите аналогичный запрос с LEAD и сравните результат с вариантом на LAG.
Для каждого менеджера created_by найдите самую раннюю submitted_date через MIN и через FIRST_VALUE.
Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.
Что возвращает LAG?
Что обязательно задаёт смысл «предыдущей» строки?
Когда нужен PARTITION BY?
Что делает LEAD?
Почему FIRST_VALUE может заменить MIN в задании 4?
Почему LAST_VALUE часто требует явной рамки окна?
Где фильтровать результат оконной функции?