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

Hapus baris duplikat dari tabel

Anda dapat mencoba menjalankan ini beberapa kali :

delete from mytable where id in (
    select max(id)
      from mytable
     group by name
    having count(1) > 1
);

Dimana berkali-kali sama dengan jumlah pengulangan maksimum yang Anda miliki di name kolom.

Jika tidak, Anda dapat mencoba kueri yang lebih kompleks ini:

delete from mytable where id in (
    select id from mytable
    except 
    (
    select min(id)
      from mytable
     group by name
    having count(1) > 1
    union all
    select min(id)
      from mytable
     group by name
    having count(1) = 1
    )
);

Menjalankan kueri ini hanya satu kali akan menghapus semua yang Anda butuhkan. Belum dicoba...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pekerja Rails Resque gagal dengan PGError:server menutup koneksi secara tidak terduga

  2. Operasi bitwise di Postgres

  3. PSQLException:ERROR:kesalahan sintaks di tsquery

  4. Apakah itu memengaruhi kinerja, jika sebuah tabel menampung banyak kolom yang tidak digunakan/tidak dipilih?

  5. Tantangan Menskalakan Database PostgreSQL Moodle