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
相关推荐
呆瑜nuage6 分钟前
MySQL数据类型全解析
数据库·mysql
XDHCOM9 分钟前
NoSQL查询语言问世,CouchDB与SQLite联手革新数据库交互方式,让数据操作更高效
数据库·nosql·couchdb
黑牛儿13 分钟前
MySQL 实战进阶:从单表优化到分布式数据库适配
数据库·分布式·mysql
momin~13 分钟前
MySQL-part3【数据库约束、表设计】
数据库·mysql
todoitbo14 分钟前
时序数据库选型指南:从大数据场景出发
大数据·数据库·时序数据库
芯盾时代16 分钟前
政务行业面临的网络风险
网络·数据库·网络安全
fire-flyer19 分钟前
第 3 篇:ClickHouse 表结构设计的核心原则
大数据·数据库·clickhouse
FinTech老王20 分钟前
时序数据库存储引擎解密:LSM-Tree vs B-Tree vs 倒排索引,谁最适合时序场景?
数据库·时序数据库·lsm-tree
阿坤带你走近大数据21 分钟前
存储过程在 oracle数据库管理工具里定时自动化运行方案
数据库·oracle·自动化
熬夜的咕噜猫24 分钟前
数据库常用SQL命令
数据库·oracle