Разница между WHERE и HAVING?

Ответ

WHERE фильтрует строки ДО группировки и работает с индексами. HAVING — ПОСЛЕ группировки, для условий на агрегаты (HAVING SUM(amount) > 1000).

Разбор: WHERE отсеивает строки до группировки и может опираться на индексы, тогда как HAVING применяется уже к сгруппированным данным и нужен для условий на агрегаты (SUM, COUNT и т.п.). Ловушка — перепутать порядок выполнения или решить, что WHERE умеет фильтровать по агрегатам: агрегаты на этапе WHERE ещё не вычислены.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться