Write a SQL query to the Find all duplicate emails in a table named Person
.
+----+---------+| Id | Email |+----+---------+| 1 | [Email protected] | | 2 | [Email protected] | | 3 | [Email protected] |+----+---------+
For example, your query should return the following for the above table:
+---------+| Email |+---------+| [Email protected] |+---------+
Note: All emails is in lowercase.
This problem lets us ask for duplicate mailbox, then the most direct way is to use GROUP by ... Having Count (*) ... Fixed collocation to do, the code is as follows:
Solution One:
SELECT from GROUP by Email having COUNT (*>1;
We can also use the internal exchange to do, with an email to two tables, and then return the different ID lines, then two different people use the same mailbox:
Solution Two:
SELECT DISTINCT from Person P1 JOIN on = P2. EmailWHERE<> p2. Id;
Resources:
Https://leetcode.com/discuss/53206/a-solution-using-a-group-by-and-another-one-using-a-self-join
Leetcode all in one topic summary (continuous update ...)
[Leetcode] Duplicate Emails Duplicate Mailbox