HAVING <alias> ...
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;
instead of:
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? Whereas the first would take the existing results?
----
Marc G. Fournier Hub.Org Networking Services (http://www.hub.org)
Email: scrappy@hub.org Yahoo!: yscrappy ICQ: 7615664
"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
On Wed, 20 Apr 2005, Tom Lane wrote:
"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 ...
Of course it is *sigh*
Thanks ...
----
Marc G. Fournier Hub.Org Networking Services (http://www.hub.org)
Email: scrappy@hub.org Yahoo!: yscrappy ICQ: 7615664