Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Atualizar uma coluna da mesma tabela se houver registros duplicados


Você pode usar a função analítica row_number() e rowid para obter as linhas:
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)