一、182. 查找重复的电子邮箱
编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。
示例:
Id | |
---|---|
1 | a@b.com |
2 | c@d.com |
3 | a@b.com |
根据以上输入,你的查询应返回以下结果:
a@b.com |
说明:所有电子邮箱都是小写字母。
二、解题思路
1.按email字段分组聚合
代码如下(示例):
select
email
,count(1) as cnt
from person
group by email
2.过滤掉cnt小于等于1的数据
代码如下(示例):
select
email
from (
select
email
,count(1) as cnt
from person
group by email) as tmp
where tmp.cnt > 1
总结
遇到分组聚合再过滤的可以考虑,group by + having一步到位
select
email
from person
group by email
having count(1) > 1