Skip to main content

Що робить 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

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.