Еще более интересно, как выполняется запрос внутри движка. Этот вопрос, кстати, достаточно часто задают на собеседованиях. Порядок выполнения и написания запроса отличается:
FROM
...
WHERE
...
GROUP BY
...
HAVING
...
SELECT
...
ORDER BY
...
По сути, в начале мы берем таблицу, фильтруем ее, а потом группируем и выводим данные.
Как видите, невозможность производить фильтрацию результатов агрегации в where, потому что в where мы только отбираем строки из первоначальной таблицы, а группируем и агрегируем уже потом.
Советуем изучить порядок выполнения запроса, потому что это помогает понимать SQL в некой структурно связанной картине.