Pour le moment, on ne sait pas ce que vous voulez que Postgres renvoie. Vous dites qu'il devrait être commandé par persons.updated_at
mais vous ne récupérez pas ce champ de la base de données.
Je pense que ce que vous voulez faire est :
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!
Maintenant, vous dites explicitement à la base de données de trier par la valeur résultante de l'agrégat COUNT. Vous pouvez également utiliser :ORDER BY 2 DESC
, indiquant effectivement à la base de données de trier par la deuxième colonne dans le jeu de résultats. Cependant, je préfère largement indiquer explicitement la colonne pour plus de clarté.
Remarque que je ne suis actuellement pas en mesure de tester cette requête, mais je pense que cela devrait fonctionner.