05 August 2008
Write a SQL query to find all duplicate emails in a table named
.1
Person
1
2
3
4
5
6
7
+----+---------+
| 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:
1
2
3
4
5
+---------+
| Email |
+---------+
| a@b.com |
+---------+
Note: All emails are in lowercase.
1
2
3
4
5
Create table If Not Exists Person (Id int, Email varchar(255))
Truncate table Person
insert into Person (Id, Email) values ('1', 'a@b.com')
insert into Person (Id, Email) values ('2', 'c@d.com')
insert into Person (Id, Email) values ('3', 'a@b.com')
1
2
3
4
Select Email
From Person
Group by Email
having count(*) > 1
1
2
3
4
5
6
7
Select Email from Person Where Id not in (
Select tmp.Id from (
Select min(Id) as Id
from Person
Group By email
) tmp
)