PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Retornar uma lista agrupada com ocorrências usando Rails e PostgreSQL


Seu problema:

Infelizmente, o rigor do Postgres quebra essa consulta porque exige que todos os campos sejam especificados na cláusula group by.

Agora, isso mudou um pouco com o PostgreSQL 9.1 (citando as notas de lançamento do 9.1):

Permitir não GROUP BY colunas na lista de destino da consulta quando a chave primária é especificada no GROUP BY cláusula (Peter Eisentraut)

Além disso, a consulta básica que você descreve nem se depara com isso:

Mostrar uma lista das 5 tags mais usadas, junto com os horários em que foram marcadas.
SELECT tag_id, count(*) AS times
FROM   taggings
GROUP  BY tag_id
ORDER  BY times DESC
LIMIT  5;

Funciona em qualquer caso.