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

SQL dua kriteria dari satu grup-oleh

Ini bisa sangat sederhana :

SELECT DISTINCT ON (b, c, e, f)
       b, c, e, f, id   -- add more columns freely
FROM   (<duplicate query here>) sub
ORDER  BY b, c, e, f, (a IS NOT NULL), id
  • Kueri duplikat Anda memiliki semua kolom. Tidak perlu JOIN ke tabel dasar lagi.

  • Gunakan ekstensi Postgres dari SQL standar DISTINCT :DISTINCT ON :

  • Postgres memiliki tipe boolean yang tepat. Anda dapat ORDER BY ekspresi boolean secara langsung. Urutannya adalah FALSE (0), TRUE (1), NULL (BATAL). Jika a adalah NULL, ekspresi ini adalah FALSE dan urutkan terlebih dahulu:(a IS NOT NULL) . Sisanya diurutkan berdasarkan id . Voila.

  • Pemilihan ID terjadi secara otomatis. Menurut deskripsi Anda, Anda ingin ID dari baris yang dipilih dalam kueri ini. Tidak ada lagi yang bisa dilakukan.

  • Anda mungkin dapat mengintegrasikan ini ke dalam kueri duplikat Anda secara langsung.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bandingkan hasil dari dua fungsi tabel menggunakan satu kolom dari masing-masing

  2. Bagaimana cara meminta nilai nol dalam jenis bidang json postgresql?

  3. Bagaimana Anda JSON Marshall pq.NullTime di UTC daripada zona waktu lokal?

  4. Konversikan postgresql hstore ke array php

  5. Ekspor tabel dari database Postgres (di server) ke file csv (di lokal) di java