Votre problème :
Malheureusement, la rigueur de Postgres rompt cette requête car elle exige que tous les champs soient spécifiés dans la clause group by.
Maintenant, cela a quelque peu changé avec PostgreSQL 9.1 (citant les notes de version de 9.1) :
Autoriser non-
GROUP BY
colonnes dans la liste cible de la requête lorsque la clé primaire est spécifiée dans leGROUP BY
clause (Peter Eisentraut)
De plus, la requête de base que vous décrivez ne se heurterait même pas à ceci :
Afficher une liste des 5 balises les plus couramment utilisées, ainsi que les heures auxquelles elles ont été taguées.
SELECT tag_id, count(*) AS times
FROM taggings
GROUP BY tag_id
ORDER BY times DESC
LIMIT 5;
Fonctionne dans tous les cas.