182_Duplicate Emails

Write a SQL query to find all duplicate emails in a table namedPerson.

+----+---------+
| Id | Email   |
+----+---------+
| 1  | a@b.com |
| 2  | c@d.com |
| 3  | a@b.com |
+----+---------+

For example, your query should return the following for the above table:

+---------+
| Email   |
+---------+
| a@b.com |
+---------+

Note: All emails are in lowercase.

Solution 1: GROUP BY + HAVING + COUNT()

Duplicated emails existed more than one time.

SELECT Email
FROM Person
GROUP BY Email
HAVING COUNT(*) > 1

Solution 2: self join

SELECT DISTINCT p1.Email
FROM Person p1 
    JOIN Person p2 ON p1.Email = p2.Email AND p1.id != p2.id;

Last updated