sql >> Base de Datos >  >> RDS >> PostgreSQL

Devuelve una lista agrupada con ocurrencias usando Rails y PostgreSQL

Tu problema:

Desafortunadamente, el rigor de Postgres rompe esa consulta porque requiere que todos los campos se especifiquen en la cláusula group by.

Ahora, eso ha cambiado un poco con PostgreSQL 9.1 (citando las notas de la versión 9.1):

Permitir no GROUP BY columnas en la lista de objetivos de consulta cuando la clave principal se especifica en GROUP BY cláusula (Peter Eisentraut)

Además, la consulta básica que describe ni siquiera se encontraría con esto:

Muestra una lista de las 5 etiquetas más utilizadas, junto con las veces que han sido etiquetadas.

SELECT tag_id, count(*) AS times
FROM   taggings
GROUP  BY tag_id
ORDER  BY times DESC
LIMIT  5;

Funciona en cualquier caso.