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
相关推荐
Wyz20121024几秒前
HTML函数运行时触控屏失灵是硬件故障吗_输入层兼容性测试【详解】
jvm·数据库·python
Greyson18 分钟前
TensorFlow中如何冻结模型层_设置layer.trainable等于False实现微调
jvm·数据库·python
老纪的技术唠嗑局8 分钟前
4.15 bubseek —— 让 Agent 的足迹,变成团队的洞察
大数据·数据库·sql·游戏·ai·oceanbase·sql优化
m0_748839499 分钟前
SQL视图在ETL流程中的作用_数据清洗与标准化接口
jvm·数据库·python
2401_8326355810 分钟前
JavaScript中字符串toLowerCase与toUpperCase规范
jvm·数据库·python
Wyz2012102412 分钟前
如何在 Discord.py 中实现按钮权限控制:仅允许特定角色点击
jvm·数据库·python
Chasing__Dreams17 分钟前
Mysql--基础知识点--100-- insert VS select...for update 加锁
数据库·mysql
2301_7775993722 分钟前
golang如何实现WebSocket断线重连_golang WebSocket断线重连实现要点
jvm·数据库·python
ZeroNews内网穿透22 分钟前
ZeroNews安全网关接入企业微信自建应用
网络·数据库·安全·云计算
数据雕塑家30 分钟前
数据库 + Grafana 可视化配置指南:从数据源连接到第一个仪表盘
数据库·grafana