The Postgresql implementation of GROUP BY does not conform to either the 
1999 or 2003 SQL standard. The documentation states that every field in the 
SELECT list which is not aggregated must be specified in the GROUP BY 
clause. While this was true in the 1992 standard, in 1999 this was changed 
to "any non-aggregated column appearing in the SELECT list is functionally 
dependent upon the GROUP BY clause". In the example both p.name and p.price 
are functionally dependent on product_id, therefore there is no need for 
them to be included in the GROUP BY clause.

In this respect Postgresql is wrong and MySQL is right.


-- 
Tony Marston
http://www.tonymarston.net
http://www.radicore.org 



-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to