Sobes.tech
Back to questions
Junior — Middle
72

Какое отличие между условием WHERE и HAVING при работе с SQL-запросами?

Companies where asked
Почтатех

Answer from AI

sobes.tech AI

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

  • WHERE фильтрует строки до группировки. Используется для отбора записей на уровне исходных данных.
  • HAVING фильтрует группы, сформированные оператором GROUP BY. Применяется после агрегации.

Пример:

SELECT department, COUNT(*) as employee_count
FROM employees
WHERE salary > 50000  -- фильтруем сотрудников с зарплатой > 50000
GROUP BY department
HAVING COUNT(*) > 10      -- выбираем отделы с более чем 10 сотрудниками

Здесь сначала выбираются сотрудники с зарплатой выше 50000 (WHERE), затем данные группируются по отделам, и после этого выбираются только те отделы, где количество сотрудников больше 10 (HAVING).