Встречается на собеседованиях • сегодня

В чем разница между командами WHERE и HAVING в SQL

WHERE фильтрует строки перед группировкой, а HAVING — после. WHERE работает с отдельными записями, HAVING — с агрегированными результатами (GROUP BY).

Пример:

sql
-- WHERE фильтрует до группировки
SELECT department, AVG(salary) 
FROM employees
WHERE salary > 50000
GROUP BY department;

-- HAVING фильтрует после группировки
SELECT department, AVG(salary)
FROM employees
GROUP BY department
HAVING AVG(salary) > 50000;

text

Ключевые отличия:
1. Порядок выполнения: WHERE → GROUP BY → HAVING
2. HAVING может использовать агрегатные функции (COUNT, SUM, AVG)
3. WHERE обычно эффективнее, так как фильтрация происходит раньше
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы