7.3 GROUP BY differs from 7.2
От | Dan Langille |
---|---|
Тема | 7.3 GROUP BY differs from 7.2 |
Дата | |
Msg-id | 20030221193223.G76894@xeon.unixathome.org обсуждение исходный текст |
Ответы |
Re: 7.3 GROUP BY differs from 7.2
|
Список | pgsql-bugs |
I notice this today when migrating an application from 7.2 to 7.3. The column name is not being recognized. See also: http://archives.postgresql.org/pgsql-sql/2003-02/msg00480.php This is the query in question: SELECT element_id as wle_element_id, COUNT(watch_list_id) FROM watch_list JOIN watch_list_element ON watch_list.id = watch_list_element.watch_list_id WHERE watch_list.user_id = 1 GROUP BY watch_list_element.element_id; ERROR: Attribute unnamed_join.element_id must be GROUPed or used in an aggregate function Of note is the column watch_list_element.element_id. The following variation works: SELECT element_id as wle_element_id, COUNT(watch_list_id) FROM watch_list JOIN watch_list_element ON watch_list.id = watch_list_element.watch_list_id WHERE watch_list.user_id = 1 GROUP BY element_id; i.e. remove the table name from the GROUP BY field. Similar success is obtained if you add the table name to element_id in both the SELECT and the GROUP BY. Similarly, this works: SELECT element_id as wle_element_id, COUNT(watch_list_id) FROM watch_list JOIN watch_list_element ON watch_list.id = watch_list_element.watch_list_id WHERE watch_list.user_id = 1 GROUP BY wle_element_id; i.e. use the column alias. Under 7.2.3, all of the above queries work. cheers
В списке pgsql-bugs по дате отправления: