SQL每日一题:删除重复电子邮箱

题干

表: Person

±------------±--------+

| Column Name | Type |

±------------±--------+

| id | int |

| email | varchar |

±------------±--------+

id 是该表的主键列(具有唯一值的列)。

该表的每一行包含一封电子邮件。电子邮件将不包含大写字母。

编写解决方案 删除 所有重复的电子邮件,只保留一个具有最小 id 的唯一电子邮件。

(对于 SQL 用户,请注意你应该编写一个 DELETE 语句而不是 SELECT 语句。)

(对于 Pandas 用户,请注意你应该直接修改 Person 表。)Person 表的最终顺序 无关紧要。返回结果格式如下示例所示。

示例

解答

使用delete和where语句,通过将此表与自身在 Email 列上连接,然后找到具有相同电子邮件地址的其他记录中较大的 id。

sql 复制代码
delete p1 from person p1, person p2 
where p1.email=p2.email and p1.id>p2.id
相关推荐
AllData公司负责人几秒前
AllData数据中台集成开源项目Apache Doris建设实时数仓平台
java·大数据·数据库·数据仓库·apache doris·实时数仓平台·doris集群
Dream of maid4 分钟前
Mysql(2)DML
android·数据库·mysql
菜程序5 分钟前
2026年MySQL安装教程(超详细)
数据库·mysql
Milu_Jingyu13 分钟前
sqlite3_prepare_v2 与 sqlite3_exec 在 SQLite 中的核心区别
java·数据库·sqlite
神の愛13 分钟前
针对“单个功能操作数据库”要不要加 @Transactional,
数据库
fly spider17 分钟前
MySQL执行流程详解
数据库·mysql
Jermy Li19 分钟前
HugeGraph 正式晋升 Apache 顶级项目:重塑「图 + AI」底座
数据库·人工智能·apache·知识图谱·database·hugegraph·knowledge graph
fly spider31 分钟前
MySQL事务详解
数据库·mysql
螺丝钉code32 分钟前
Hermes Agent 进阶实践:自动化工作流与协同
运维·数据库·自动化
格鸰爱童话35 分钟前
跟着AI学sql
数据库·sql