SQL statement for Oracle Application to delete duplicate data query and delete duplicate records 1. Search for redundant duplicate records in the Table. duplicate records are based on a single field (Id) select * from table where Id in (select Id from Table group byId having count (Id)> 1) 2. Delete unnecessary duplicate records in the table, duplicate records are determined based on a single field (Id). Only the records with the smallest rowid are retained: DELETE from table WHERE (id) IN (SELECT id FROM Table group by id having count (id)> 1) and rowid not in (select min (ROWID) FROM Table group by id having count (*)> 1); 3. Find redundant duplicate records IN the table (multiple fields) select * from Table a where (. id,. seq) in (select Id, seq from Table group by Id, seq having count (*)> 1) 4. Delete redundant record (multiple fields) in the table ), only records with the smallest rowid are record: delete from Table a where (. id,. seq) in (select Id, seq from Table group by Id, seq having count (*)> 1) and rowid not in (select min (rowid) from Table group by Id, seq having count (*)> 1) 5. Search for redundant duplicate records (multiple fields) in the table, excluding the select * from Table a where (. id,. seq) in (select Id, seq from Table group by Id, seq having count (*)> 1) and rowid not in (select min (rowid) from Table group by Id, seq having count (*)> 1)