PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

kelompokkan menurut fungsi agregat tanggal di postgresql

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan PostgreSQL 42501:Izin Ditolak untuk Skema

  2. Perbarui dengan fungsi yang dipanggil sekali untuk setiap baris di Postgres 8.4

  3. Koneksi Postgres telah ditutup kesalahan di Spring Boot

  4. Jumlah cek pemicu postgres sebelum dihapus

  5. Memutakhirkan PostgreSQL 11 ke PostgreSQL 13 dengan TimescaleDB dan PostGIS di Linux menggunakan pg_upgrade