每日一题之查找重复的电子邮件
查找重复的电子邮件
编写一个 SQL 查询,查找 Person
表中所有重复的电子邮箱。
示例:
1 | +----+---------+ |
根据以上输入,你的查询应返回以下结果:
1 | +---------+ |
说明:所有电子邮箱都是小写字母。
解题思路:
- 判定两者邮箱一样,但是id又不一样的邮箱
- 查找两个邮箱相同的email
- 同时两者的Id不一致
- 使用
GROUP BY
和临时表- 使用
count
函数和GROUP BY
统计电子邮件的存在次数 - 以此作为临时表,获取存在次数大于1的电子邮件
- 使用
- 使用
GROUP BY
和HAVING
条件
代码:
判定两者邮箱一样,但是id又不一样的邮箱
1 | SELECT DISTINCT p1.Email |
需要借助ID
全表扫描
使用 GROUP BY
和临时表
1 | SELECT Email FROM |
全表扫描
使用GROUP BY
和HAVING
条件
1 | SELECT Email |
较第二种方法更为高效
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 YD Blog!