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

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

Основное отличие между HAVING и WHERE заключается в том, где они применяются в SQL-запросе:

  • WHERE фильтрует строки до группировки (GROUP BY), работая с отдельными записями.
  • 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) > 70000;

Ключевое:

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

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

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

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