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
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。