Re: BUG #4465: GROUP BY is not to SQL standard
От | Peter Eisentraut |
---|---|
Тема | Re: BUG #4465: GROUP BY is not to SQL standard |
Дата | |
Msg-id | 48EF893E.2010504@gmx.net обсуждение исходный текст |
Ответ на | BUG #4465: GROUP BY is not to SQL standard ("Tony Marston" <tony@marston-home.demon.co.uk>) |
Список | pgsql-bugs |
Tony Marston wrote: > The following bug has been logged online: > > Bug reference: 4465 > Logged by: Tony Marston > Email address: tony@marston-home.demon.co.uk > PostgreSQL version: 8.3.4 > Operating system: Windows XP > Description: GROUP BY is not to SQL standard > Details: > > 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. SQL 2003 (and similarly 1999) also says """ Without Feature T301, âFunctional dependenciesâ, in conforming SQL language, if T is a grouped table, then in each <value expression> contained in the <select list>, each <column reference> that references a column of T shall reference a grouping column or be specified in an aggregated argument of a <set function specification>. """ and as you can read in the documentation (http://www.postgresql.org/docs/current/static/unsupported-features-sql-standard.html), PostgreSQL does not support feature T301. Therefore the implemented behavior is not "wrong", but it could arguably be enhanced.
В списке pgsql-bugs по дате отправления: