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

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

HAVING и WHERE фильтруют данные, но работают на разных этапах запроса:

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

Пример:

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) > 70000;

Ключевое отличие:

  • WHERE нельзя использовать с агрегатными функциями, HAVING — можно.
  • WHERE работает быстрее, так как сокращает данные до группировки.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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