Sobes.tech
Back to questions
Middle
1

Стандартный вопрос по SQL: WHERE и HAVING — в чём отличие?

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

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

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

Пример:

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

Здесь WHERE ограничивает исходные строки, а HAVING — итоговые группы.