Saat ini tidak jelas apa yang Anda ingin Postgres kembalikan. Anda mengatakan itu harus dipesan oleh persons.updated_at
tetapi Anda tidak mengambil bidang itu dari database.
Saya pikir, yang ingin Anda lakukan adalah:
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!
Sekarang Anda secara eksplisit memberi tahu DB untuk mengurutkan berdasarkan nilai yang dihasilkan dari COUNT-agregat. Anda juga dapat menggunakan:ORDER BY 2 DESC
, secara efektif memberi tahu database untuk mengurutkan berdasarkan kolom kedua di hasil. Namun saya lebih suka menyatakan kolom secara eksplisit untuk kejelasan.
Catatan bahwa saat ini saya tidak dapat menguji kueri ini, tetapi menurut saya ini akan berhasil.