LeetCode 182 查找重复的电子邮箱

表: Person

表: 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 出现了两次。

解题:

SELECT email Email FROM Person GROUP BY email HAVING COUNT(id) > 1;

官方解答:

1.使用 GROUP BY 和临时表

SELECT Email FROM (SELECT email Email, COUNT(id) num FROM Person GROUP BY email) t WHERE num > 1;

2.使用 GROUP BY 和 HAVING 条件

SELECT email Email FROM Person GROUP BY email HAVING COUNT(id) > 1;

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注