logo       

7.3 GROUP BY differs from 7.2: msg#00100

db.postgresql.bugs

Subject: 7.3 GROUP BY differs from 7.2

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

---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/users-lounge/docs/faq.html



<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise