leetcode182:查找重复的电子邮箱

编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。

示例:

+----+---------+
| Id | Email   |
+----+---------+
| 1  | [email protected] |
| 2  | [email protected] |
| 3  | [email protected] |
+----+---------+

根据以上输入,你的查询应返回以下结果:

+---------+
| Email   |
+---------+
| [email protected] |
+---------+

说明:所有电子邮箱都是小写字母。

SELECT Email FROM Person GROUP BY Email HAVING COUNT(*) > 1

知识点

1.SELECT Email FROM Person GROUP BY Email

2.HAVING

对由sum或其它集合函数运算结果的输出进行限制。

“Where” 是一个约束声明,使用Where来约束来之数据库的数据,Where是在结果返回之前起作用的,且Where中不能使用聚合函数。

“Having”是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作,在Having中可以使用聚合函数。

只要条件里面的字段, 不是表里面原先有的字段就需要用having. SQL在查询表的时候先把查询的字段放到了内存里,而where查询的时候是从表里面查的,其余需要用having。

3.COUNT(*)

count(*) 是个聚合函数 作用是求表的或者组的所有记录数
select * from 表名 这个是查询表的所有记录
select count(*) from 表名 这个是查询表的所有记录数

猜你喜欢

转载自blog.csdn.net/weixin_43160613/article/details/82958261