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
相关推荐
实战派K8S&DB4 分钟前
TDSQL 核心模块与进程体系
运维·数据库·分布式·sql·mysql
FfHUCisI8 分钟前
Go 性能分析工具 pprof:CPU、Heap 与 Goroutine 实战
数据库·golang
仍然.13 分钟前
Redis---分布式锁
数据库·redis·分布式
ly768914 分钟前
MongoDB 副本集选举风暴排查:从心跳超时到 Journal 刷盘阻塞
数据库·mongodb·php·mongodb 副本集·选举风暴·journal 刷盘·writeconcern
刘天远20 分钟前
Agent成本核算实现:事件表、状态分布与Python归集
前端·数据库·人工智能·python
hey you~32 分钟前
通话记录与工单关联数据库设计:ER图、中间表、索引优化与分库分表(2026版)
数据库·分库分表·客服系统·数据一致性·后端开发·通话记录·跨系统查询
java_logo1 小时前
Docker 部署 OpenViking:轻松搭建 AI Agent 上下文数据库平台
数据库·人工智能·docker·agent·火山引擎·openviking·轩辕镜像
Codiggerworld1 小时前
Redis 正式接入 AI:当“最懂速度的数据库“开始解决“记忆问题“
数据库·人工智能·redis
白露与泡影1 小时前
Redis 正式接入 AI:当“最懂速度的数据库“开始解决“记忆问题“
数据库·人工智能·redis
我不会插花弄玉1 小时前
3.通用命令【由浅入深-redis】
数据库·redis·bootstrap