LeetCode Database 182 查找重复的电子邮箱

1. 题目描述

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

示例:

1
2
3
4
5
6
7
+----+---------+
| Id | Email |
+----+---------+
| 1 | a@b.com |
| 2 | c@d.com |
| 3 | a@b.com |
+----+---------+

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

1
2
3
4
5
+---------+
| Email |
+---------+
| a@b.com |
+---------+

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

2. 题解

2.1. MySQL(GROUP BY + HAVING)

1
2
SELECT Email FROM Person
GROUP BY Email HAVING COUNT(*) > 1

2.2. MySQL(自连接)

注意别忘了DISTINCT

1
2
3
SELECT DISTINCT(tb1.Email) FROM Person tb1
JOIN Person tb2
ON tb1.Email = tb2.Email AND tb1.Id != tb2.Id
panchaoxin wechat
关注我的公众号
支持一下