182. Duplicate Emails

来源:互联网 发布:现在做什么比较好知乎 编辑:程序博客网 时间:2024/06/06 08:26

题目:

在表Person中找出重复的email。

Person

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

例如:

Email a@b.com

解析:

表中的Id为干扰项,并无实际用处。
我们有非常方便的方法找出去重后的列表(利用distinct)但是并没有能够直接找出重复元素的语法。
因此,我们不妨换个思路,统计出email中各个不同的email的出现次数,如果出现的次数大于1,则为重复项。既然是分组统计,那么免不了使用group bycout()

select Emailfrom person group by Emailhaving  count(Email)>1

按照email进行分组,每组中统计数大于1那么则为重复项。
注:此处条件应使用having而不是where,因为语句中使用了count()

原创粉丝点击