Thursday, November 1, 2007

Finding Duplicates with SQL

Here's a handy query for finding duplicates in a table. Suppose you want to find all email addresses in a table that exist more than once:

SELECT email,
COUNT (email) AS NumOccurrences
FROM users
GROUP BY email
HAVING (COUNT (email) > 1)

You could also use this technique to find rows that occur exactly once:

SELECT email
FROM users
GROUP BY email
HAVING (COUNT (email) = 1)