Vấn đề của bạn:
Rất tiếc, tính nghiêm ngặt của Postgres đã phá vỡ truy vấn đó vì nó yêu cầu tất cả các trường phải được chỉ định trong nhóm theo mệnh đề.
Bây giờ, điều đó đã thay đổi phần nào với PostgreSQL 9.1 (trích dẫn ghi chú phát hành của 9.1):
Cho phép không phải
GROUP BY
trong danh sách đích truy vấn khi khóa chính được chỉ định trongGROUP BY
mệnh đề (Peter Eisentraut)
Hơn nữa, truy vấn cơ bản mà bạn mô tả thậm chí sẽ không gặp phải trường hợp này:
Hiển thị danh sách 5 thẻ được sử dụng phổ biến nhất, cùng với số lần chúng được gắn thẻ.
SELECT tag_id, count(*) AS times
FROM taggings
GROUP BY tag_id
ORDER BY times DESC
LIMIT 5;
Hoạt động trong mọi trường hợp.