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
相关推荐
是小崔啊1 分钟前
PostgreSQL快速入门
数据库·postgresql
xxxmine8 分钟前
Redis 持久化详解:RDB、AOF 与混合模式
数据库·redis·缓存
yufuu9812 分钟前
使用Scikit-learn进行机器学习模型评估
jvm·数据库·python
MMME~16 分钟前
Ansible模块速查指南:高效定位与实战技巧
大数据·运维·数据库
甘露s32 分钟前
深入理解 Redis:事务、持久化与过期策略全解析
数据库·redis
珠海西格40 分钟前
远动通信装置为何是电网安全运行的“神经中枢”?
大数据·服务器·网络·数据库·分布式·安全·区块链
小宇的天下1 小时前
Calibre 3Dstack --每日一个命令day18【floating_trace】(3-18)
服务器·前端·数据库
星空露珠1 小时前
速算24点检测生成核心lua
开发语言·数据库·算法·游戏·lua
what丶k1 小时前
SpringBoot3 缓存抽象深度实践:Caffeine+Redis多级缓存,穿透/雪崩/击穿防御全方案
数据库·redis·缓存
咖啡の猫1 小时前
Redis简单介绍
数据库·redis·缓存