PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Renvoie une liste groupée avec des occurrences en utilisant Rails et PostgreSQL

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 le GROUP 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.