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

🔖 Справочник: HAVING и фильтрация групп

⚡ Минимум для запоминания

  • WHERE — фильтр строк, без агрегатов.
  • HAVING — фильтр групп, с агрегатами.
  • Порядок: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT.

Операторы фильтрации

ОператорНазначениеПример
WHEREФильтр строк до группировкиWHERE status = 'active'
HAVINGФильтр групп после группировкиHAVING COUNT(*) > 1
ANDОбъединение условийHAVING SUM(amount) > 100 AND COUNT(*) > 2
ORХотя бы одно условиеHAVING MAX(price) < 10 OR MIN(price) > 1000

Агрегатные функции

ФункцияНазначениеПример в HAVING
COUNT(*)Количество строк в группеHAVING COUNT(*) > 2
COUNT(column)Количество не NULL значенийHAVING COUNT(email) > 0
SUM(column)Сумма значенийHAVING SUM(quantity) > 100
AVG(column)Среднее значениеHAVING AVG(score) >= 70
MIN(column)МинимумHAVING MIN(price) > 0
MAX(column)МаксимумHAVING MAX(price) < 10000

Порядок операторов в запросе

SELECT column, aggregate(column)
FROM table
WHERE row_filter
GROUP BY column
HAVING group_filter
ORDER BY column
LIMIT n;

Полный справочник

→ Справочник SQL