← К оглавлению занятия

Занятие 34. Агрегирующие оконные функции

📁 Блок: SQL / MySQL / Оконные функции ⏱️ Время изучения: ~90 мин 🎯 Сложность: Продвинутая
#sum #avg #min #max #count #over #order #by

⚡ Кратко: суть темы

Агрегирующие оконные функцииSUM, AVG, MIN, MAX, COUNT — считают итоги по набору строк окна, но не сворачивают исходные строки, в отличие от GROUP BY.

  • OVER () — окно из всех строк; OVER (PARTITION BY ...) — окно внутри группы.
  • ORDER BY внутри OVER превращает агрегат в кумулятивный или скользящий итог.
  • Чаще всего используют для подсчёта долей, накопительных сумм и сравнения строки со средним/максимумом группы.

Что запомнить: без ORDER BY в окне результат одинаковый для всех строк окна; с ORDER BY — он накапливается по мере прохода строк.

Топ-3 ошибки: 1) пытаться фильтровать по псевдониму оконной функции в WHERE; 2) добавлять GROUP BY рядом с оконной функцией без необходимости; 3) забывать ORDER BY, когда нужна кумулятивная сумма.

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

Занятие посвящено агрегирующим оконным функциям: SUM, AVG, MIN, MAX, COUNT. Мы научимся считать общие суммы и количества по клиентам, доли от максимальной цены, кумулятивные продажи по датам и скользящее среднее — при этом сохраняя каждую исходную строку результата.

Что изучим

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

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

Следующее занятие — Занятие 35: Практикум 9.