HAVING - это синтаксический сахар. По сути, СУБД под капотом из запроса с GROUP BY делает подзапрос, на котором делает WHERE.
Для простоты понимания:
SELECT C1, COUNT(*) AS NumberOfC1 FROM Table1
WHERE 1 = 1
GROUP BY C1
HAVING NumberOfC1 > 1
Под капотом это:
SELECT C1, NumberOfC1 FROM (
SELECT C1, COUNT(*) AS NumberOfC1 FROM Table1
WHERE 1 = 1
GROUP BY C1) T
WHERE NumberOfC1 > 1