[SQL 题库] 查找重复的电子邮箱
上一篇 /
下一篇 2019-05-31 15:33:33 / 天气: 舒适
/ 心情: 平静
/ 个人分类:数据库
编写一个
SQL 查询,查找
Person
表中所有重复的电子邮箱。
示例:
+----+---------+
| Id | Email |
+----+---------+
| 1 | a@b.com |
| 2 | c@d.com |
| 3 | a@b.com |
+----+---------+
根据以上输入,你的查询应返回以下结果:
+---------+
| Email |
+---------+
| a@b.com |
+---------+
说明:所有电子邮箱都是小写字母。
思路一:
先按照“Email"分组排序,然后统计每组记录的个数,计算每封电子邮件的存在次数作为临时表,然后从临时表中选出记录数大于1的记录。
SELECT Email
FROM
(SELECT Email, COUNT(Email) AS Num
FROM Person
GROUP BY Email
) AS Statictis/*Note: 此处的alias一定要加上,否则运行时会报错,如E1所示*/
WHERE Num > 1;
E1:
“Every derived table must have its own alias”
思路二:
可以直接使用GROUP BY 和HAVING 条件
SELECT Email
FROM Person
GROUP BY Email
HAVING COUNT(Email) > 1;
收藏
举报
TAG: