🟢 Лёгкий · 1 очк. SQL
В чём разница между WHERE и HAVING?
A Нет разницы
B WHERE фильтрует строки до GROUP BY, HAVING - после
C HAVING быстрее WHERE
D WHERE работает только с числами
Объяснение вопроса

WHERE фильтрует строки до группировки и агрегации. HAVING фильтрует результат после GROUP BY (по агрегатам и сгруппированным полям). В HAVING можно использовать агрегатные функции (COUNT, SUM и т.д.), в WHERE - нет.

SELECT dept, COUNT(*) AS cnt
FROM employees
WHERE salary > 50000
GROUP BY dept
HAVING COUNT(*) > 5
-- WHERE отсекает сотрудников с salary <= 50000
-- HAVING оставляет только отделы с более чем 5 такими сотрудниками
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.