[LeetCode-SQL]182. 查找重复的电子邮箱(SQL)having + count函数
1. 题目
 
2. 读题(需要重点注意的东西)
思路1(having+count函数):
使用having的原因是where无法与聚合函数一起使用,因此,要使用聚合函数的话,在having后面使用,作为条件判断语句。
通过group by 对邮箱进行分组,然后用count函数 统计出每个邮箱的个数即可,将个数大于1的邮箱返回。
思路2(自连接):
自连接后返回email相同,但是id不同的email(这说明同一个email在多个id处出现过,即email的个数大于1),再进行去重即可。
3. 解法
---------------------------------------------------解法1---------------------------------------------------
select Email
from person
group by email
having count(email) > 1
可能存在的问题: ---------------------------------------------------解法2---------------------------------------------------
select distinct p1.Email
from person p1,person p2
where p1.email = p2.email and p1.id != p2.id;
可能存在的问题:
4. 总结

|