20.4.25 查找重复的电子邮箱 简单 182
题目
编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。
示例:
+----+---------+
| Id | Email |
+----+---------+
| 1 | a@b.com |
| 2 | c@d.com |
| 3 | a@b.com |
+----+---------+
根据以上输入,你的查询应返回以下结果:
+---------+
| Email |
+---------+
| a@b.com |
+---------+
说明:所有电子邮箱都是小写字母。
解题思路
- 第一种,利用分组和聚集函数
- 第二种,利用DISTINCT和更名后笛卡尔乘积
代码
# Write your MySQL query statement below
//第一种
SELECT Email
FROM Person
GROUP BY Email
HAVING COUNT(Email)>1
//第二种
SELECT DISTINCT T.Email
FROM Person AS T, Person AS S
WHERE T.Id!=S.Id
AND T.Email=S.Email