LeetCode 182. 查找重复的电子邮箱
描述
表: Person:
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| id | int |
| email | varchar |
+-------------+---------+
id 是该表的主键列。
此表的每一行都包含一封电子邮件。电子邮件不包含大写字母。
编写一个 SQL 查询来报告所有重复的电子邮件。 请注意,可以保证电子邮件字段不为 NULL。
以 任意顺序 返回结果表。
查询结果格式如下例。
示例 1:
输入:
Person 表:
+----+---------+
| id | email |
+----+---------+
| 1 | a@b.com |
| 2 | c@d.com |
| 3 | a@b.com |
+----+---------+
输出:
+---------+
| Email |
+---------+
| a@b.com |
+---------+
解释: a@b.com
出现了两次。
题解
使用 GROUP BY 和临时表
SELECT Email FROM
(
SELECT Email,count(Email) as num
FROM Person
GROUP BY Email
)AS statistic
WHERE num > 1;
使用 GROUP BY HAVING
SELECT Email
FROM Person
GROUP BY Email
HAVING count(Email)>1;