← К курсу

Занятие 40. Summary session 10

📁 Блок: SQL / MySQL / Оконные функции ⏱️ Время изучения: ~60 мин 🎯 Сложность: Повторение
#row_number #rank #dense_rank #ntile #lag #lead #first_value

⚡ Кратко: суть занятия

Summary session 10 повторяет два блока оконных функций: ранжирование и смещение/выбор.

Для ранжирования используем ROW_NUMBER, RANK, DENSE_RANK, NTILE.

Для сравнения соседних строк используем LAG и LEAD; для крайних значений — FIRST_VALUE и LAST_VALUE.

Минимальный пример: DENSE_RANK() OVER (ORDER BY quantity DESC) строит рейтинг по количеству, а LAG(date_received) OVER (ORDER BY date_received) находит предыдущую дату.

Топ-3 ошибки: путать RANK и DENSE_RANK, забывать ORDER BY в окне, фильтровать результат окна до внешнего SELECT.

📖 О чём это занятие

  • Повторим функции ранжирования: ROW_NUMBER, RANK, DENSE_RANK, NTILE.
  • Повторим функции смещения и выбора: LEAD, LAG, FIRST_VALUE, LAST_VALUE, NTH_VALUE.
  • Разберём задания практикума 10 и домашнее задание 10 из предыдущего урока.
  • Соберём общий алгоритм выбора оконной функции под задачу.

📚 Что повторить перед изучением

🎯 Что изучать дальше

Следующее занятие — Занятие 41: Оптимизация запросов. Индексация.