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

SQL - Penghapusan duplikat lanjutan menggunakan ID NOT IN

Anda dapat menggunakan ROW_NUMBER fungsi analitik dan mengkorelasikan penghapusan menggunakan ROWID pseudo-kolom:

DELETE FROM my_table
WHERE ROWID IN (
  SELECT ROWID
  FROM   (
    SELECT ROW_NUMBER() OVER (
             PARTITION BY student_id, subject_id, class_id
             ORDER BY expertise_lvl DESC
           ) AS rn
    FROM   my_table
  )
  WHERE  rn > 1
)

db<>fiddle di sini




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL bukan bulan yang valid

  2. Urutan baris default untuk kueri pemilihan di Oracle

  3. Oracle - Jejak Audit untuk pengguna tertentu

  4. Urutkan berdasarkan hari dalam seminggu dari Senin hingga Minggu

  5. SQL untuk memeriksa semua nilai di kolom