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

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

Основное различие между WHERE и HAVING в 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) > 50000;

Ключевые моменты:

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

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

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

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