leetcode之删除重复电子邮箱

删除重复的电子邮箱

题目描述

编写一个 SQL 查询,来删除 Person 表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个
在这里插入图片描述

Result

在这里插入图片描述

先上答案

delete from person where Id not in (select t.Id from (select min(Id) as Id, Email from person group by Email)as t);
解析:

第一步:
审题:题目要求删除, 很多都会以为可以直接使用select来进行解答,导致测试验证得不出正确的答案
第二步:
思路:去除重复重复邮箱,并留下最小的Id,首先可以排除使用distinct关键字,因为并不知道去除重复的里面会不会留下最小Id,这时候我们可以想到使用group by先进行分组,同时我们可以使用min()函数获取到每一分组中的最小Id(这时候查询出来的Id是所有邮箱对应的最小Id),然后通过使用Id not in进行排序作为where条件即可得出结果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值