文章目录
- [1. 182.查找重复的电子邮箱](#1. 182.查找重复的电子邮箱)
-
- [1.1 题干](#1.1 题干)
- [1.2 准备数据](#1.2 准备数据)
- [1.3 解法](#1.3 解法)
- [1.4 结果截图](#1.4 结果截图)
1. 182.查找重复的电子邮箱
1.1 题干
表: Person
±------------±--------+
| Column Name | Type |
±------------±--------+
| id | int |
| email | varchar |
±------------±--------+
id 是该表的主键(具有唯一值的列)。
此表的每一行都包含一封电子邮件。电子邮件不包含大写字母。
编写解决方案来报告所有重复的电子邮件。 请注意,可以保证电子邮件字段不为 NULL。
以 任意顺序 返回结果表。
结果格式如下例。
示例 1:
输入:
Person 表:
±---±--------+
| id | email |
±---±--------+
| 1 | a@b.com |
| 2 | c@d.com |
| 3 | a@b.com |
±---±--------+
输出:
±--------+
| Email |
±--------+
| a@b.com |
±--------+
解释: a@b.com 出现了两次。
1.2 准备数据
sql
Create table If Not Exists Person (id int, email varchar(255))
Truncate table Person
insert into Person (id, email) values ('1', 'a@b.com')
insert into Person (id, email) values ('2', 'c@d.com')
insert into Person (id, email) values ('3', 'a@b.com')
1.3 解法
sql
with t1 as(
select email,count(*) cnt from Person group by email having cnt >1
)
select email from t1;