We have a table with duplicate records for columnA, and we want to write a SQL query to make columnA the primary key. For this we need a delete query to delete the duplicate records so that columnA will have only unique values.
To remove duplicate rows of data, use the following statement:
DELETE FROM my_table
WHERE rowid NOT IN ( SELECT MAX(ROWID) FROM my_table
GROUP BY colA,colB,colC );
In the GROUP BY clause, enumerate all of your columns in your table, or the columns you think should be the primary key columns. The subquery will get the max rowid of these groupings. The DELETE will remove all rows that do not have these rowid values.
Dig Deeper on Oracle and SQL