"Marc G. Fournier" <scrappy@postgresql.org> writes:
> Is there a reason (other then it hasn't been implemented yet?) that the
> following couldn't work?
> SELECT id,count(id) AS cnt
> FROM table
> WHERE id IN ( 1,2,3,4,5)
> GROUP BY id
> HAVING cnt = 2;
It's contrary to the SQL spec, for one thing ...
> SELECT id,count(id) AS cnt
> FROM table
> WHERE id IN ( 1,2,3,4,5)
> GROUP BY id
> HAVING count(id) = 2;
> The second one would have to 're-run' the COUNT against the table, would
> it not?
No, it doesn't. We've optimized out duplicate aggregate calls for
awhile now.
regards, tom lane