这是一个系列文章,这个系列的理念是通过一道题,搞懂一类题。涵盖了SQL面试最常考的知识点。搞懂这些题,面试时工作中sql不可能有问题。

文章分为引入问题-完整解析-答案-leetcode题和答案-知识点拓展-BAT等大厂面试真题几个部分。

希望能帮你全方位的弄懂。有问题可以留言,码字不易,写一篇要好几个小时,希望能得到点赞收藏哦

一、问题

现有一张同学的邮箱表,里面包含学生编号和邮箱两列,现要求删除相同邮箱的记录,且重复的邮箱只保留学生编号最小的那个。

二、准备

create table 邮箱 (
学生编号 int(20),
邮箱 varchar(20));insert into Person values
(1,'john@example.com'),
(2,'bob@example.com'),
(3,'john@example.com'),
(4,'john@example.com');

三、解答

[解题思路]

1.明确题目要求,要求删除重复邮箱且保留学生编号小的那个。

如图我们看到,1号同学和3号同学的邮箱重复了,保留学生编号小的,即保留1号同学的邮箱删除3号同学的邮箱。

2.学会转换思考问题的角度,运用我们学过的知识解决没有见过的问题。

前面学习过主键不相等的多表如何连接。这里我们可以使用自连接找出邮箱相等,学生编号不相等的记录。

3.确定连接主键。需要找到邮箱相同,所以a.邮箱 = b.邮箱。需要找出所有比最小的学生编号大的记录删掉。所以a.学生编号>b.学生编号。两个连接条件组合返回所有比最小学生编号大的学生的记录。

DELETE a
FROM 邮箱 a,邮箱 b
WHEREa.邮箱 = b.邮箱 AND a.学生编号 > b.学生编号

[leetcode题库问题-196.删除重复的电子邮箱 ]

编写一个 SQL 查询,来删除 Person 表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。

[参考答案]

DELETE p1 FROM Person p1,Person p2
WHEREp1.Email = p2.Email AND p1.Id > p2.Id

sql删除重复的数据保留一条_leetcode题库-sql练习精讲系列--九、删除重复相关推荐

  1. mysql删除重复的数据保留一条

    mysql删除重复的数据保留一条 -- 删除多余的重复记录,只保留最小id的记录,content 为内容重复字段 DELETE FROM zimis WHERE id IN (SELECT * FRO ...

  2. 删除重复的数据保留一条

    Mysql删除重复数据只保留一条_怪 咖@的博客-CSDN博客_mysql删除重复数据保留一条 这个是相关的链接,可以参考.

  3. mysql数据库删除重复的数据保留一条

    1.问题引入 假设一个场景,一张用户表,包含3个字段.id,identity_id,name.现在身份证号identity_id和姓名name有很多重复的数据,需要删除只保留一条有效数据. 2.模拟环 ...

  4. php去除重复的数据保留一条,mysql查找删除重复数据并只保留一条实例详解

    有这样一张表,表数据及结果如下: school_id school_name total_student test_takers 1239 Abraham Lincoln High School 55 ...

  5. sql decimal函数例子_leetcode题库-sql练习精讲系列--三、经典排名问题

    这是一个系列文章,这个系列的理念是通过一道题,搞懂一类题.涵盖了SQL面试最常考的知识点.搞懂这些题,面试时工作中sql不可能有问题. 文章分为引入问题-完整解析-答案-leetcode题和答案-知识 ...

  6. select 统计数量_leetcode题库-sql练习精讲系列--十三、简单分组统计类问题

    这是一个系列文章,这个系列的理念是通过一道题,搞懂一类题.涵盖了SQL面试最常考的知识点.搞懂这些题,面试时工作中sql不可能有问题. 文章分为引入问题-完整解析-答案-leetcode题和答案-知识 ...

  7. angularjs 元素重复指定次数_leetcode题库-sql练习精讲系列--六、查找重复类问题

    这是一个系列文章,这个系列的理念是通过一道题,搞懂一类题.涵盖了SQL面试最常考的知识点.搞懂这些题,面试时工作中sql不可能有问题. 文章分为引入问题-完整解析-答案-leetcode题和答案-知识 ...

  8. mysql timediff 时间相减_leetcode题库-sql练习精讲系列--十、日期时间函数的使用

    这是一个系列文章,这个系列的理念是通过一道题,搞懂一类题.涵盖了SQL面试最常考的知识点.搞懂这些题,面试时工作中sql不可能有问题. 文章分为引入问题-完整解析-答案-leetcode题和答案-知识 ...

  9. sql根据条件删除重复数据保留一条

    首先找到哪些数据是有重复记录的 over里是条件 select t.*,row_number() over(partition by t.ordercode,t.mobilephone,t.plate ...

最新文章

  1. Ant Design Vue select下拉列表设置默认值
  2. 在Docker中的ubuntu中安装Python3和Pip
  3. 守卫者的挑战(guard)
  4. Medoo 开源项目发布,超轻量级的PHP SQL数据库框架
  5. python一图带你精通time类型转换
  6. java parseint()
  7. JavaScript学习笔记:创建自定义对象
  8. DNS原理及其解析过程 精彩剖析
  9. simulink和psim仿真结果不同_(格麟倍)航空航天零件硬铬电镀工艺专业仿真评估工具...
  10. 进程间能否传递指针?
  11. HALCON 21.11:深度学习笔记---设置超参数(5)
  12. java.lang unsupported classversion解决方法
  13. PCL中把txt文件转换成.pcd文件(很简单)
  14. C++第2次实验2-三角形类
  15. 【LaTeX入门】02、CJK环境讲解
  16. ipone 手机不断出现电亡事件 是抹黑 还是真的如此
  17. CNN 卷积神经网络-- 残差计算
  18. B - -- - B
  19. 基于echarts+js+fexible.js实现的数据可视化适配案例(附源代码)
  20. 想来一杯奶昔吗?NEX-5R、NEX-6强势登场

热门文章

  1. Error in value[[3L]](cond) : You have a 32-bit version of Java. H2O works best with 64-bit Java.
  2. R语言可视化堆叠(stack)的条形图并通过另外一个分类变量分离(dodge)条形图(stacking by one variable and dodging by another)实战
  3. R语言二项分布函数Binomial Distribution(dbinom, pbinom, qbinom rbinom)实战
  4. Python可视化matplotlib多子图可视化(Multiple Subplots):plt.axes()、plt.subplot()、plt.subplots()、
  5. linux中调试脚本,在Linux下调试 Shell 脚本
  6. 统计学:统计学概述(一)
  7. SMRT测序技术及其在微生物研究中的应用
  8. 乾坤符和鸿蒙符,少年三国志四种暗金兵符技能怎么样 四种暗金兵符技能分析...
  9. github用相对路径显示图片_url-图像未显示在GitHub的README.md中
  10. fiash星空动画制作_三维动画制作的详细流程