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.14(java)3 分钟前
MySQL索引原理与B+树应用详解
数据库·b树·mysql
java干货4 分钟前
用 MySQL SELECT SLEEP() 优雅模拟网络超时与并发死锁
网络·数据库·mysql
哈哈不让取名字6 分钟前
使用Fabric自动化你的部署流程
jvm·数据库·python
洛_尘8 分钟前
MySQL 6:数据库约束
数据库·mysql
dawudayudaxue9 分钟前
sqlite在安卓下使用ndk的交叉编译
android·数据库·sqlite
YIN_尹9 分钟前
【MySQL】表的约束(下)
android·数据库·mysql
lkbhua莱克瓦2412 分钟前
Apache Maven全面解析
java·数据库·笔记·maven·apache
optimistic_chen13 分钟前
【Redis系列】哨兵模式
linux·数据库·redis·分布式·哨兵
啊吧怪不啊吧23 分钟前
极致性能的服务器Redis之Hash类型及相关指令介绍
大数据·数据库·redis·sql·mybatis·哈希算法
五阿哥永琪32 分钟前
MySQL面试题 如何解决深分页?
数据库·mysql