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

agrupar por função de agregação de data no postgresql


No momento, não está claro o que você deseja que o Postgres retorne. Você diz que deve ser encomendado por persons.updated_at mas você não recupera esse campo do banco de dados.

Acho que o que você quer fazer é:
SELECT date(updated_at), count(updated_at) as total_count 
FROM "persons"
WHERE ("persons"."updated_at" BETWEEN '2012-10-17 00:00:00.000000' AND '2012-11-07     12:25:04.082224') 
GROUP BY date(updated_at)
ORDER BY count(updated_at) DESC -- this line changed!

Agora você está dizendo explicitamente ao banco de dados para classificar pelo valor resultante do COUNT-aggregate. Você também pode usar:ORDER BY 2 DESC , efetivamente dizendo ao banco de dados para classificar pela segunda coluna no conjunto de resultados. No entanto, prefiro declarar explicitamente a coluna para maior clareza.

Observação que atualmente não consigo testar essa consulta, mas acho que isso deve funcionar.