Встречается на собеседованиях • сегодня
В чем разница между HAVING и WHERE в SQL
Разница между WHERE и HAVING в SQL — фундаментальное понятие, связанное с этапами выполнения запроса.
Ключевые отличия:
1. Этап применения
WHERE фильтрует отдельные строки до группировки (до оператора GROUP BY).
HAVING фильтрует результаты агрегации (после группировки).
2. Контекст использования
WHERE работает с данными из таблиц (столбцами, не участвующими в агрегации).
HAVING работает с результатами агрегатных функций (SUM, COUNT, AVG и т.д.).
3. Синтаксический порядок
text
SELECT
FROM
WHERE -- Фильтрация строк ДО группировки
GROUP BY
HAVING -- Фильтрация групп ПОСЛЕ группировки
ORDER BYПример с WHERE (фильтрация до группировки):
text
SELECT category, SUM(revenue) AS total
FROM sales
WHERE revenue > 100 -- Отбираем строки с revenue > 100 ДО группировки
GROUP BY category;Пример с HAVING (фильтрация после группировки):
text
SELECT category, SUM(revenue) AS total
FROM sales
GROUP BY category
HAVING SUM(revenue) > 250; -- Отбираем группы с суммой revenue > 250
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы