Sobes.tech
Back to questions
Junior — Middle
92

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

Companies where asked
AvitoAvito
Positive TechnologiesPositive Technologies

Answer from AI

sobes.tech AI

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

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

Пример:

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

Здесь WHERE отбирает сотрудников с зарплатой выше 50000, а HAVING — отделы, где таких сотрудников больше 10.