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

agrupar por función agregada de fecha en postgresql

Por el momento, no está claro qué quiere que devuelva Postgres. Dices que debería ordenarse por persons.updated_at pero no recupera ese campo de la base de datos.

Creo que lo que quieres hacer es:

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!

Ahora le está diciendo explícitamente a la base de datos que ordene por el valor resultante del agregado COUNT. También puedes usar:ORDER BY 2 DESC , diciéndole efectivamente a la base de datos que ordene por la segunda columna en el conjunto de resultados. Sin embargo, prefiero indicar explícitamente la columna para mayor claridad.

Nota que actualmente no puedo probar esta consulta, pero creo que debería funcionar.