sql >> Databasteknik >  >> RDS >> Oracle

SQL - Avancerad borttagning av dubbletter med ID NOT IN

Du kan använda ROW_NUMBER analytisk funktion och korrelera borttagningen med ROWID pseudo-kolumn:

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<>fiol här




  1. Hur gör man en "korrekt skiftläge"-formatering av en mysql-kolumn?

  2. hur man skapar en uppdateringstrigger för Öka/minska 1 nummer till totalt antal röster

  3. PDO får bråkdelar av sekunder från Postgres

  4. Visa alla instanser som bör registreras dynamiskt med en lyssnare