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
相关推荐
弹简特6 小时前
【Java项目-轻聊】10-实现会话管理模块
java·开发语言·数据库
czhc11400756636 小时前
614 :代码修正: halcon 注销;sql配置修改
sql
网管NO.16 小时前
MySQL 8.0 JSON 操作 | 新增 / 查询 / 修改,适配新兴业务
数据库·mysql·json
yurenpai(27届找实习中)6 小时前
Feed 流推送与附近商户:从推模式到 GeoHash,一条 Timeline 的完整旅程
java·数据库·oracle·feed
IT策士7 小时前
MySQL 系列:第1篇 数据库时代与MySQL
数据库·mysql
ExC1dNtqz7 小时前
Redis 分布式锁进阶第六篇讲解
数据库·redis·分布式
小胖xiaopangss7 小时前
Redis 基础入门与实践指南
数据库·redis·缓存
江畔柳前堤8 小时前
agent面试题
数据库·人工智能·opencv·数据挖掘·语音识别·agent
J.P.August8 小时前
ASM故障组配置实现RAC双活冗余
数据库·oracle
乐兮创想 小林8 小时前
企业官网 i18n 多语言工程实践:URL 策略、hreflang、内容管理与多语言 SEO
数据库·网站建设·企业官网·北京网站建设公司