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
相关推荐
曹牧12 小时前
Oracle EXPLAIN PLAN
数据库·oracle
BD_Marathon12 小时前
SQL学习指南——视图
数据库·sql
活宝小娜12 小时前
mysql详细安装教程
数据库·mysql·adb
贤时间12 小时前
codex 助力oracle ebs 开发
数据库·oracle
秉承初心13 小时前
PostgreSQL 数据性能瓶颈突破实战
数据库·postgresql·oracle
2601_9620725513 小时前
李梦娇常识4600问|题库|打印版
sql·华为od·华为·c#·华为云·.net·harmonyos
Database_Cool_13 小时前
即席查询(Ad-Hoc)数据库选型:AnalyticDB MySQL 秒级 Ad-Hoc 分析方案
数据库·mysql
Nontee13 小时前
新手数据库进阶:一条UPDATE语句的“奇妙漂流”
数据库
赵渝强老师14 小时前
【赵渝强老师】openGauss的数据库
数据库·opengauss·国产数据库·高斯数据库