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

Grup Postgresql oleh untuk beberapa baris

Ini mengembalikan semua baris tempat ada duplikat :

SELECT employee_id, leave_date, no_of_days, leave_state
FROM   hr_holidays_by_calendar h
WHERE  EXISTS (
   SELECT -- select list can be empty for EXISTS
   FROM   hr_holidays_by_calendar
   WHERE  employee_id = h.employee_id
   AND    leave_date = h.leave_date
   AND    leave_state <> 'refuse'
   AND    ctid <> h.ctid
   )
AND    leave_state <> 'refuse'
ORDER  BY employee_id, leave_date;

Tidak jelas di mana leave_state <> 'refuse' harus berlaku. Anda harus mendefinisikan persyaratan. Contoh saya mengecualikan baris dengan leave_state = 'refuse' (dan leave_state IS NULL dengan itu!) sepenuhnya.

ctid adalah pengganti orang miskin untuk kunci utama Anda yang tidak diungkapkan (tidak ditentukan?).

Terkait:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menghapus Baris Duplikat di PostgreSQL dengan banyak kolom

  2. Setel batas ke array_agg()

  3. bug kata sandi UTF node-postgres

  4. Urutkan nilai NULL ke akhir tabel

  5. Ukuran transaksi maksimum di PostgreSQL