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

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

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

  1. WHERE фильтрует строки до группировки (GROUP BY). Применяется к отдельным записям.
  2. HAVING фильтрует после группировки. Работает с агрегированными данными (COUNT, 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) > 75000;  -- отбираем отделы со средней ЗП > 75k

Ключевое отличие: WHERE не может использовать агрегатные функции, а HAVING - может.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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