Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Hapus baris duplikat di Oracle SQL, biarkan entri terbaru

Berikut adalah pendekatan menggunakan id baris:

delete from transaction
where 
    last_update = date '2020-03-01'
    and rowid in (
        select rid
        from (
            select 
                rowid rid, 
                row_number() over(partition by par_num ,tran_num order by last_update desc) rn
            from transaction                
        ) t
        where rn > 1
    )

Subquery menghasilkan daftar id baris untuk baris yang bukan yang terbaru dalam grupnya (yaitu semua record memiliki par_num ,tran_num yang sama ) - record terbaru per grup diidentifikasi menggunakan row_number() . Kueri luar hanya menghapus baris tersebut.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara memperbarui DB lokal saya secara berkala dengan perubahan dari DB Produksi

  2. Konversi dari Oracle's RAW(16) ke .NET's GUID

  3. Perbarui stempel waktu pada baris referensi terkait saat memperbarui atau menyisipkan

  4. Temukan apakah kolom memiliki batasan unik

  5. perbedaan antara ON Clause dan menggunakan klausa di sql