196.删除重复的电子邮箱

张开发
2026/4/20 4:11:46 15 分钟阅读

分享文章

196.删除重复的电子邮箱
题目表:Person---------------------- | Column Name | Type | ---------------------- | id | int | | email | varchar | ---------------------- id 是该表的主键列(具有唯一值的列)。 该表的每一行包含一封电子邮件。电子邮件将不包含大写字母。编写解决方案删除所有重复的电子邮件只保留一个具有最小id的唯一电子邮件。对于 SQL 用户请注意你应该编写一个DELETE语句而不是SELECT语句。对于 Pandas 用户请注意你应该直接修改Person表。运行脚本后显示的答案是Person表。驱动程序将首先编译并运行您的代码片段然后再显示Person表。Person表的最终顺序无关紧要。返回结果格式如下示例所示。示例 1:输入:Person 表: ---------------------- | id | email | ---------------------- | 1 | johnexample.com | | 2 | bobexample.com | | 3 | johnexample.com | ----------------------输出:---------------------- | id | email | ---------------------- | 1 | johnexample.com | | 2 | bobexample.com | ----------------------解释:johnexample.com重复两次。我们保留最小的Id 1。思路本题限制使用delete语句来写两种思路一. 自连接删除邮箱相同但是id大的数据二. 子查询按照email分组删除那些不是最小id的数据出现问题无代码方法1 delete p1 from person as p1, person as p2 where p1.id p2.id and p1.email p2.email 方法2 delete from person where id not in( select min_id from( select min(id) as min_id from person group by email ) as t )

更多文章