Sobes.tech
Junior — Middle
92

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

Companies where asked
Swiftfactory

Answer from AI

sobes.tech AI

Оператор WHERE используется для фильтрации строк до группировки данных. Он отбирает строки, которые будут участвовать в дальнейших операциях, например, в агрегатных функциях.

Оператор HAVING применяется для фильтрации уже сгруппированных данных, то есть после выполнения GROUP BY. Он позволяет отфильтровать группы по агрегатным условиям.

Пример:

SELECT department, COUNT(*) AS employee_count
FROM employees
WHERE salary > 50000  -- фильтрация строк по зарплате
GROUP BY department
HAVING COUNT(*) > 5      -- фильтрация групп по количеству сотрудников

Итого:

  • WHERE фильтрует отдельные записи до группировки.
  • HAVING фильтрует группы после группировки.

Используйте WHERE для условий на отдельные поля, HAVING — для условий на агрегатные функции.