あなたの問題:
残念ながら、Postgresの厳密さは、group by句ですべてのフィールドを指定する必要があるため、そのクエリを破ります。
さて、これはPostgreSQL 9.1で多少変更されました(9.1のリリースノートを引用):
GROUP BY
以外を許可するGROUP BY
で主キーが指定されている場合のクエリターゲットリストの列 条項(Peter Eisentraut)
さらに、あなたが説明する基本的なクエリは、これに遭遇することさえありません:
最も一般的に使用される5つのタグのリストと、それらがタグ付けされた回数を表示します。
SELECT tag_id, count(*) AS times
FROM taggings
GROUP BY tag_id
ORDER BY times DESC
LIMIT 5;
いずれの場合でも機能します。