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

重複するレコードがある場合は、同じテーブルの列を更新します

    分析関数 row_number() を使用できます。 および rowid 行を取得するには:

    UPDATE test_dup
       SET done = 'error'
     WHERE ROWID IN (SELECT ROWID
                       FROM (SELECT acc_num, tel_num, imsi, ROW_NUMBER () OVER (PARTITION BY acc_num, tel_num, imsi ORDER BY acc_num) AS ROW_NUMBER FROM test_dup)
                      WHERE ROW_NUMBER > 1)
    



    1. PostgreSQLに最適なアラートおよび通知ツール

    2. ActiveRecordをスレッドセーフにする方法

    3. PostgreSQLの列名にコロンが含まれている問題

    4. GROUP BYを使用して各グループの最新のレコードを取得するにはどうすればよいですか?