Занятие 39. Практикум 10
⚡ Кратко: суть занятия
Практикум 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.
📖 О чём это занятие
- Выполним шесть задач из источника по таблице
purchase_order_details. - Отработаем соседние даты получения продукта через
LAGиLEAD. - Используем
FIRST_VALUEдля максимума и минимума внутриinventory_id. - Повторим
DENSE_RANKиROW_NUMBERдля топ-N и выбора конкретной строки.
📚 Что повторить перед изучением
🎯 Что изучать дальше
Следующее занятие — Занятие 40: Summary session 10.