SQL-leetcode-196. 删除重复的电子邮箱

server/2025/1/7 22:18:15/

196. 删除重复的电子邮箱

表: Person

±------------±--------+
| Column Name | Type |
±------------±--------+
| id | int |
| email | varchar |
±------------±--------+
id 是该表的主键列(具有唯一值的列)。
该表的每一行包含一封电子邮件。电子邮件将不包含大写字母。

编写解决方案 删除 所有重复的电子邮件,只保留一个具有最小 id 的唯一电子邮件。

(对于 SQL 用户,请注意你应该编写一个 DELETE 语句而不是 SELECT 语句。)

(对于 Pandas 用户,请注意你应该直接修改 Person 表。)

运行脚本后,显示的答案是 Person 表。驱动程序将首先编译并运行您的代码片段,然后再显示 Person 表。Person 表的最终顺序 无关紧要 。

返回结果格式如下示例所示。

示例 1:

输入:
Person 表:
±—±-----------------+
| id | email |
±—±-----------------+
| 1 | john@example.com |
| 2 | bob@example.com |
| 3 | john@example.com |
±—±-----------------+
输出:
±—±-----------------+
| id | email |
±—±-----------------+
| 1 | john@example.com |
| 2 | bob@example.com |
±—±-----------------+
解释: john@example.com重复两次。我们保留最小的Id = 1。

题解

删除不推荐,看到delete就得三思一下,你又不是删库跑路,哈哈
删除重复的,就是去重,怎么去重?
group by 取min 删除其他?
row_number 排名保留1个删除其他?
子查询把要删除的查出来?

方法一 row_number去重留最小

-- 删除不推荐,看到delete就得三思一下
delete from Person where id not in (select id from (select min(id) as id from person group by email ) tmp
)-- 还是优先查出来要保留的内容吧
select 
tmp.id,tmp.email 
from (select id,email,row_number() over(partition by email order by id) as rn from Person
) tmp where tmp.rn=1 order by id 

其他方法不再扩展,自己搞搞就行,都比较简单,结构也差不太多


http://www.ppmy.cn/server/156604.html

相关文章

基于CLIP和DINOv2实现图像相似性方面的比较

概述 在人工智能领域,CLIP和DINOv2是计算机视觉领域的两大巨头。CLIP彻底改变了图像理解,而DINOv2为自监督学习带来了新的方法。 在本文中,我们将踏上一段旅程,揭示定义CLIP和DINOv2的优势和微妙之处。我们的目标是发现这些模型…

STM32的LED点亮教程:使用HAL库与Proteus仿真

学习目标:掌握使用STM32 HAL库点亮LED灯,并通过Proteus进行仿真验证! 建立HAL库标准工程 1.新建工程文件夹 新建工程文件夹建议路径尽量为中文。建立文件夹的目的为了更好分类去管理项目工程中需要的各类工程文件。 首先需要在某个位置建立工…

浅谈棋牌游戏开发流程七:反外挂与安全体系——守护游戏公平与玩家体验

一、前言:为什么反外挂与安全这么重要? 对于任何一款线上棋牌游戏而言,公平性和玩家安全都是最重要的核心要素之一。如果游戏环境充斥着各式各样的外挂、作弊方式,不仅会毁坏玩家体验,更会导致游戏生态崩塌、口碑下滑…

远程医疗系统如何有效防护CC攻击

远程医疗系统如何有效防护CC攻击?随着科技的飞速发展,远程医疗系统已经成为现代医疗服务的一部分。它打破了地域限制,为患者提供了更为便捷、高效的医疗服务。远程医疗系统当下也面临网络安全威胁,其中CC攻击便是一种极具破坏力的…

HTML——69.表单验证属性

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>表单验证属性</title></head><body><!--input元素的type属性&#xff1a;(必须要有)--> <!--pattern属性:1.规定输入字符的模式&#xff08;如要…

OneFlow的简单介绍

OneFlow 是北京一流科技有限公司旗下的采用全新架构设计的开源工业级通用深度学习框架。以下是关于 OneFlow 的详细介绍&#xff1a; 本篇文章的目录 特点 功能 应用场景 发展历程 特点 简洁易用的接口&#xff1a;为深度学习相关的算法工程师提供一套简洁易用的用户接口…

个人交友系统|Java|SSM|JSP|

【技术栈】 1⃣️&#xff1a;架构: B/S、MVC 2⃣️&#xff1a;系统环境&#xff1a;Windowsh/Mac 3⃣️&#xff1a;开发环境&#xff1a;IDEA、JDK1.8、Maven、Mysql5.7 4⃣️&#xff1a;技术栈&#xff1a;Java、Mysql、SSM、Mybatis-Plus、JSP、jquery,html 5⃣️数据库可…

【Leetcode】2274. 不含特殊楼层的最大连续楼层数

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接&#x1f517; A l i c e Alice Alice 管理着一家公司&#xff0c;并租用大楼的部分楼层作为办公空间。 A l i c e Alice Alice 决定将一些楼层作为 特殊楼层 &#xff0c;仅用于放松。 给你两个…