В момента не е ясно какво искате да върне Postgres. Казвате, че трябва да се подрежда по persons.updated_at
но не извличате това поле от базата данни.
Мисля, че това, което искате да направите, е:
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!
Сега вие изрично казвате на DB да сортира по получената стойност от COUNT-aggregate. Можете също да използвате:ORDER BY 2 DESC
, ефективно казвайки на базата данни да сортира по втората колона в набора от резултати. Въпреки това силно предпочитам изрично да посочвам колоната за яснота.
Забележка че в момента не мога да тествам тази заявка, но мисля, че това трябва да работи.