Ask the Expert

Query to delete duplicate records in column

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.

    Requires Free Membership to View

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.

This was first published in February 2007

There are Comments. Add yours.

 
TIP: Want to include a code block in your comment? Use <pre> or <code> tags around the desired text. Ex: <code>insert code</code>

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
Sort by: OldestNewest

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to: