2020-12-05

力扣数据库题目182查找重复的电子邮箱

力扣数据库题目182查找重复的电子邮箱

题目

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

示例:

+----+---------+
| Id | Email |
+----+---------+
| 1 | a@b.com |
| 2 | c@d.com |
| 3 | a@b.com |
+----+---------+

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

+---------+
| Email |
+---------+
| a@b.com |
+---------+

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

来源:力扣(LeetCode)

方案一

分组

SELECT emailFROM test.personGROUP BY emailHAVING count(*) > 1

方案二

where子查询

SELECT DISTINCT emailFROM test.person tWHERE (SELECT count(*) FROM test.person WHERE email = t.email) > 1

方案三

exists判断

SELECT DISTINCT emailFROM test.person tWHERE EXISTS(SELECT email FROM test.person WHERE email = t.email AND id <> t.id)

方案四

表连接

SELECT DISTINCT a.emailFROM test.person aINNER JOIN test.person b ON a.email = b.email AND a.id > b.id

总结

一般情况下查询可以先考虑简单查【标准单表查询】,再考虑子查询【SELECT或WHERE子查询】,最后考虑表连接。基本上表连接可以解决几乎所有SQL问题。









原文转载:http://www.shaoqun.com/a/494933.html

马莎:https://www.ikjzd.com/w/2385

square:https://www.ikjzd.com/w/2106

ola:https://www.ikjzd.com/w/2103


力扣数据库题目182查找重复的电子邮箱题目编写一个SQL查询,查找Person表中所有重复的电子邮箱。示例:+----+---------+|Id|Email|+----+---------+|1|a@b.com||2|c@d.com||3|a@b.com|+----+---------+根据以上输入,你的查询应返回以下结果:+---------+|Email|+---------+|a@b.co
勤商网:勤商网
海带宝:海带宝
11、12月去桂林天气怎样?桂林天气如何?:11、12月去桂林天气怎样?桂林天气如何?
跨境早报丨亚马逊位居全球品牌百强榜首:跨境早报丨亚马逊位居全球品牌百强榜首
2020冬季去珠海有什么好玩的地方?:2020冬季去珠海有什么好玩的地方?

No comments:

Post a Comment