Ошибка 1. В LAG/LEAD нет ORDER BY
Симптом: Запрос работает, но соседние даты не имеют смысла.
Исправление: Добавьте ORDER BY date_received.
Практикум 10 закрепляет оконные функции ранжирования, смещения и выбора на таблице purchase_order_details.
Ключевые конструкции: LAG, LEAD, FIRST_VALUE, DENSE_RANK, ROW_NUMBER, CTE.
Минимальный пример: LAG(date_received) OVER (PARTITION BY product_id ORDER BY date_received) показывает предыдущую дату получения продукта.
Практический фокус — сначала получить аналитический столбец, а затем фильтровать результат через CTE или подзапрос.
Топ-3 ошибки: не задать сортировку для LAG/LEAD, фильтровать ROW_NUMBER в том же WHERE, забыть убрать строки с пустым date_received.
Симптом: Запрос работает, но соседние даты не имеют смысла.
Исправление: Добавьте ORDER BY date_received.
Симптом: SQL не видит псевдоним quantity_rank.
Исправление: Используйте CTE ranked_products.
Симптом: Вместо максимума получается минимум.
Исправление: Для максимума используйте ORDER BY quantity DESC.
Симптом: В начале окна появляются пустые даты и портят соседние значения.
Исправление: Фильтруйте WHERE date_received IS NOT NULL до расчёта окна.