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
相关推荐
计算机毕设MTU77578 分钟前
999+套计算机毕业设计——基于HTML5+CSS的图书馆借阅管理系统的设计与实现(含源码+部署教程+数据库)
数据库·spring boot·课程设计·借阅管理系统·图书馆
2501_9167665411 分钟前
MySQL 数据库与 SQL 语言介绍
数据库·sql·mysql
Hello.Reader12 分钟前
在 Flink SQL 里做向量检索 VECTOR_SEARCH
大数据·sql·flink
hakertop19 分钟前
如何基于C#读取.dot图论文件并和QuickGraph联动
数据库·c#·图论
老华带你飞20 分钟前
作业管理|基于Java作业管理系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·后端
JIngJaneIL21 分钟前
基于Java人力资源管理系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot
Xyz996_26 分钟前
Redis数据库基础
数据库·redis·缓存
山南有清风28 分钟前
基于Redis的分布式任务调用框架实现
数据库·redis·分布式·分布式任务
明月惊雀29 分钟前
微服务依赖版本管理
java·数据库·微服务
小马爱打代码42 分钟前
Spring AI:Docker 安装向量数据库 - Redis Stack
数据库·人工智能·spring