Hiện tại vẫn chưa rõ bạn muốn Postgres trả lại những gì. Bạn nói rằng nó nên đặt hàng trước persons.updated_at
nhưng bạn không truy xuất trường đó từ cơ sở dữ liệu.
Tôi nghĩ, những gì bạn muốn làm là:
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!
Bây giờ bạn đang nói rõ ràng với DB để sắp xếp theo giá trị kết quả từ tổng hợp COUNT. Bạn cũng có thể sử dụng:ORDER BY 2 DESC
, yêu cầu cơ sở dữ liệu sắp xếp theo cột thứ hai trong tập kết quả một cách hiệu quả. Tuy nhiên, tôi thực sự thích nêu rõ cột một cách rõ ràng.
Lưu ý rằng tôi hiện không thể kiểm tra truy vấn này, nhưng tôi nghĩ điều này sẽ hoạt động.