sql >> データベース >  >> RDS >> Oracle

SQL-IDNOTINを使用した高度な重複の削除

    ROW_NUMBERを使用できます 分析関数を使用し、ROWIDを使用して削除を関連付けます 疑似列:

    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 こちら




    1. RMANはRMAN-06900で失敗しますRMAN-06901ORA-04031

    2. postgresql-jsonを構築するためのクエリ

    3. SQLでN番目に大きい要素を見つける

    4. LOAD DATALOCALINFILEで特殊文字を設定する方法