Що робить HAVING? Чим HAVING відрізняється від WHERE?
HAVING використовують, щоб фільтрувати результати після групування (GROUP BY).
А WHERE - щоб відфільтрувати рядки до групування.
Різниця в порядку виконання
WHEREпрацює доGROUP BY, відбирає окремі рядки;HAVINGпрацює після, відбирає групи за результатами агрегатних функцій.
Приклад
sql
SELECT department, SUM(salary)
FROM employees
GROUP BY department
HAVING SUM(salary) > 100000;Спершу створюються групи за department,
потім лишаються тільки ті, де сума зарплат більша за 100 000.
Якби замість HAVING використати WHERE, SQL не зрозумів би SUM(salary),
бо агрегати на цьому етапі ще не пораховані.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.