WHERE фильтрует строки до группировки (GROUP BY), влияя на то, какие строки будут участвовать в агрегатных функциях. HAVING фильтрует группы строк после группировки, основываясь на результатах агрегатных функций.
| Особенность | WHERE | HAVING |
|---|---|---|
| Применение | К отдельным строкам | К группам строк |
| Время обработки | Перед GROUP BY | После GROUP BY |
| Использование | С полями из таблицы, но без агрегатных функций | С результатами агрегатных функций или полями из GROUP BY |
Пример использования WHERE:
sql
Пример использования HAVING:
sql
Пример совместного использования:
sql