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
相关推荐
我爱一条柴ya7 分钟前
【AI大模型】RAG系统组件:向量数据库(ChromaDB)
数据库·人工智能·pytorch·python·ai·ai编程
北北~Simple9 分钟前
第一次搭建数据库
服务器·前端·javascript·数据库
鸢想睡觉9 分钟前
【数据库基础 1】MySQL环境部署及基本操作
数据库·mysql
没有口袋啦10 分钟前
《数据库》MySQL备份回复
数据库
c7_ln14 分钟前
MYSQL C_API使用全解
c语言·数据库·mysql
karry013017 分钟前
高并发导致重复key问题--org.springframework.dao.DuplicateKeyException
java·数据库·ide
经典19922 小时前
mysql 锁介绍
数据库·mysql
不太可爱的大白2 小时前
Mysql分片:一致性哈希算法
数据库·mysql·算法·哈希算法
~ 小团子2 小时前
每日一SQL 【游戏玩法分析 IV】
数据库·sql·游戏
零叹2 小时前
MySQL——常用程序and主从复制
数据库·mysql