182. Duplicate Emails

题目描述和难度

  • 题目描述:

编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。

示例:

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

根据以上输入,你的查询应返回以下结果:

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

说明:所有电子邮箱都是小写字母。

思路分析

求解关键:

用于测试的 SQL 语句:

参考解答

参考解答1

DROP TABLE IF EXISTS Person ;

CREATE TABLE Person(
  Id INT PRIMARY KEY AUTO_INCREMENT,
  Email VARCHAR(200)
);

INSERT INTO Person(Email) VALUES ('a@b.com');
INSERT INTO Person(Email) VALUES ('c@d.com');
INSERT INTO Person(Email) VALUES ('a@b.com');


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

SELECT DISTINCT p1.Email FROM Person p1,Person p2 
WHERE p1.email = p2.email AND p1.`Id`!=p2.`Id`;

本篇文章的地址为 https://liweiwei1419.github.io/leetcode-solution/leetcode-0182-duplicate-emails ,如果我的题解有错误,或者您有更好的解法,欢迎您告诉我 liweiwei1419@gmail.com