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 по дате отправления:

Предыдущее
От: "Tony Marston"
Дата:
Сообщение: BUG #4465: GROUP BY is not to SQL standard
Следующее
От: "Jussi Pakkanen"
Дата:
Сообщение: Re: BUG #4462: Adding COUNT to query causes massive slowdown