Sobes.tech
Back to questions
Junior — Middle
62

Чем отличается применение условий HAVING и WHERE при работе с SQL-запросами?

Companies where asked
ИнфоТехСервис
OkkoOkko
ООО Корпорация ЗНАК
РунитиРунити

Answer from AI

sobes.tech AI

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

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

Пример:

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

Таким образом, WHERE работает с отдельными записями, а HAVING — с результатами агрегирования.