Váš problém:
Bohužel přísnost Postgresu tento dotaz přerušuje, protože vyžaduje, aby byla všechna pole specifikována ve skupině podle klauzule.
Nyní se to poněkud změnilo s PostgreSQL 9.1 (cituji poznámky k vydání 9.1):
Povolit jiné než
GROUP BY
sloupců v seznamu cílů dotazu, když je primární klíč zadán vGROUP BY
klauzule (Peter Eisentraut)
A co víc, základní dotaz, který popisujete, by ani nenarazil na toto:
Zobrazit seznam 5 nejčastěji používaných značek spolu s časy, kdy byly označeny.
SELECT tag_id, count(*) AS times
FROM taggings
GROUP BY tag_id
ORDER BY times DESC
LIMIT 5;
Funguje v každém případě.