题目:
在表Person
中找出重复的email。
表 Person
Id | |
---|---|
1 | a@b.com |
2 | c@d.com |
3 | a@b.com |
例如:
a@b.com |
解析:
表中的Id为干扰项,并无实际用处。
我们有非常方便的方法找出去重后的列表(利用distinct
)但是并没有能够直接找出重复元素的语法。
因此,我们不妨换个思路,统计出email中各个不同的email的出现次数,如果出现的次数大于1,则为重复项。既然是分组统计,那么免不了使用group by
和cout()
select Email
from person group by Email
having count(Email)>1
按照email进行分组,每组中统计数大于1那么则为重复项。
注:此处条件应使用having
而不是where
,因为语句中使用了count()
。