Что делает оператор HAVING в SQL-запросе с группировкой?

AФильтрует строки до агрегации, как WHERE, и не работает с результатами COUNT или SUM
BФильтрует группы после GROUP BY и применяется к результатам агрегатов, например COUNT или SUM
CСортирует результаты группировки, как ORDER BY, по значениям агрегатных функций
DСчитает агрегаты по группам, как COUNT или SUM, и не выполняет фильтрацию данных
Правильный ответ. HAVING фильтрует уже агрегированные группы, в отличие от WHERE, который фильтрует строки до агрегации.

Разбор

WHERE применяется до агрегации и фильтрует строки, а HAVING — после GROUP BY и фильтрует группы по значениям агрегатов. Пример: SELECT dept, COUNT(*) FROM users GROUP BY dept HAVING COUNT(*) > 5;. Сортировкой занимается ORDER BY, а сами агрегаты считают функции вроде COUNT или SUM — это разные роли в запросе.

Можно заниматься бесплатно

Готовим вопросы…

Три вопроса по теме этой страницы, с объяснениями.

Продолжить в браузере

Ещё вопросы по теме «Агрегация, GROUP BY и HAVING»