sql >> Base de Datos >  >> RDS >> Oracle

Actualice una columna de la misma tabla si hay registros duplicados

Puede utilizar la función analítica row_number() y rowid para obtener las filas:

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)