Sobes.tech
Senior
79

Ποια είναι η διαφορά μεταξύ HAVING και WHERE;

Εταιρείες όπου ρωτήθηκαν
СБЕРСБЕР

Απάντηση από AI

sobes.tech AI

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

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

  • HAVING фильтрует группы после выполнения агрегатных функций и группировки. Он применяется к результатам агрегирования.

Пример:

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

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