Problem :
Write a SQL query to find all duplicate emails in a table named Person.
+—-+———+
| 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.
———————————————————————————————————
SQL Schema:
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’);
Solution :
SELECT
LOWER(email)
FROM
person
GROUP BY LOWER(email)
HAVING COUNT(id) > 1;