196. 删除重复的电子邮箱


196. 删除重复的电子邮箱

难度简单 288
编写一个 SQL 查询,来删除 Person 表中所有重复的电子邮箱,重复的邮箱里只保留 *Id **最小  *的那个。
+—-+——————+
| Id | Email            |
+—-+——————+
| 1  | john@example.com |
| 2  | bob@example.com  |
| 3  | john@example.com |
+—-+——————+
Id 是这个表的主键。

例如,在运行你的查询语句之后,上面的 Person 表应返回以下几行:
+—-+——————+
| Id | Email            |
+—-+——————+
| 1  | john@example.com |
| 2  | bob@example.com  |
+—-+——————+

提示:

  • 执行 SQL 之后,输出是整个 Person 表。
  • 使用 delete 语句。
delete p1.*
FROM Person p1,
     Person p2
WHERE
    p1.Email = p2.Email AND p1.Id > p2.Id
;
delete  from Person where id not in(select * from (select min(id) mid from Person group by email) p);

下面这个就报错

delete  from Person where id not in(select min(id) mid from Person  group by email);

文章作者:   future
版权声明:   本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 future !
 上一篇
182. 查找重复的电子邮箱 182. 查找重复的电子邮箱
182. 查找重复的电子邮箱难度简单 234 收藏分享切换为英文接收动态反馈SQL 架构编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。示例:+—-+———+| Id | Email   |+—-+———+| 1  |
2020-10-17 future
下一篇 
好习惯 好习惯
#好习惯 1.坚持每天读书自学. 2.每天至少 30 分钟有氧运动. 3.和有成功思维的人建立人际关系. 4.追求自己设定的目标. 5.梦想先行.目标紧随其后. 6.避免浪费时间. 7.每天睡够 7-8 个小时. 8.提前起床.养成早起习惯
2020-10-08 future
  目录