🔗 Ресурсы
⚡ Кратко: ресурсы
Практикум 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.
🔗 Официальная документация
- MySQL — Window Functions
- MySQL — CREATE INDEX
- MySQL — EXPLAIN
- PostgreSQL — Window Functions tutorial
- PostgreSQL — Indexes
- SQLite — Window Functions
- SQLite — Query Planner
- DBeaver Documentation
Проверить по документации: синтаксис и детали оптимизатора различаются между MySQL, PostgreSQL и SQLite. Перед переносом запроса между СУБД сверяйте раздел соответствующей документации.