表: Person
+-------------+---------+ | Column Name | Type | +-------------+---------+ | id | int | | email | varchar | +-------------+---------+ id 是该表的主键列(具有唯一值的列)。 该表的每一行包含一封电子邮件。电子邮件将不包含大写字母。
编写解决方案 删除 所有重复的电子邮件,只保留一个具有最小 id 的唯一电子邮件。
(对于 SQL 用户,请注意你应该编写一个 DELETE 语句而不是 SELECT 语句。)
(对于 Pandas 用户,请注意你应该直接修改 Person 表。)
运行脚本后,显示的答案是 Person 表。驱动程序将首先编译并运行您的代码片段,然后再显示 Person 表。Person 表的最终顺序 无关紧要 。
返回结果格式如下示例所示。
示例 1:
输入: Person 表: +----+------------------+ | id | email | +----+------------------+ | 1 | john@example.com | | 2 | bob@example.com | | 3 | john@example.com | +----+------------------+ 输出: +----+------------------+ | id | email | +----+------------------+ | 1 | john@example.com | | 2 | bob@example.com | +----+------------------+ 解释: john@example.com重复两次。我们保留最小的Id = 1。
1、方法一:
/* Write your T-SQL query statement below */
delete
p1
from
Person p1, Person p2
where
p1.email = p2.email and p1.id > p2.id
删除别名为p1的表中email与p2相等且p1的id是要大于p2的id的。
2、方法二:
delete from
person
where
id not in (
select
min(id)
from
person
group by
email
)
删除person表中的相同emailid不是最小的内容
本文介绍如何使用SQL和Pandas的方法从Person表中删除重复的电子邮件,只保留每个电子邮件对应最小ID的记录。SQL方案涉及使用DELETE语句,而Pandas则直接在数据框上操作。
1681

被折叠的 条评论
为什么被折叠?



