LeetCode-数据库196(删除语句的应用)

196题干

编写一个 SQL 删除语句来 删除 所有重复的电子邮件,只保留一个id最小的唯一电子邮件。

以 任意顺序 返回结果表。 (注意: 仅需要写删除语句,将自动对剩余结果进行查询)

查询结果格式如下所示。

 

SQL架构

Create table If Not Exists Person (Id int, Email varchar(255))
Truncate table Person
insert into Person (id, email) values ('1', 'john@example.com')
insert into Person (id, email) values ('2', 'bob@example.com')
insert into Person (id, email) values ('3', 'john@example.com')

 

示例

 

 

 

 

我的题解

DELETE FROM Person 
WHERE id NOT IN(
SELECT id FROM(SELECT MIN(id) AS id FROM Person GROUP BY email) E)

 

优秀题解

1 DELETE P1 FROM Person P1,
2 Person P2
3 WHERE P1.email = P2.email AND P1.id > P2.id

 


 

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/delete-duplicate-emails
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

posted @ 2022-04-26 23:30  Fancy[love]  阅读(56)  评论(0编辑  收藏  举报