sql 删除重复数据

问题是这样的。今天在一个技术群里,一个群友提了一个问题:

大概是,一张学生表 student,有字段 id (自增), name, 想要删除多余的重复name 的数据,剩下id最小的那条数据。写个sql 删除重复数据,同时要兼顾效率。我问他是什么数据库,他说是面试遇到的一个问题,没说什么数据库,然后我就说写个oracle的给他。
主要是我对其他数据库不熟悉,也不知道是否适用其他数据库。

于是我写了以下sql:

delete from student s where s.id in (select base.id from (select t.id, row_number() over(partition by t.name order by t.id) tep from student t ) base where base.tep > 1)
   解释一下:select t.id, row_number() over(partition by t.name order by t.id) tep from student t

这句是 根据 name 分组,再根据 id排序,获取组内排序的序号或行号。每组排序是独立的,最后这个子查询得到的结果就是 id,name,tep(序号);外层就是查询出行号 大于1 的,肯定就是重复的需要删除的数据了。

sql 删除重复数据相关推荐

  1. SQL删除重复数据方法

    原文:SQL删除重复数据方法 例如: id           name         value 1               a                 pp 2            ...

  2. 如何正确的使用一条SQL删除重复数据

    点击上方蓝字关注我 数据库中表存在重复数据,需要清理重复数据,清理后保留其中一条的情况是比较常见的需求,如何通过1条SQL准确的删除数据呢? 1. 创建表及测试数据 1.1 数据库中创建一张测试表 C ...

  3. 表之sql删除重复数据、查找去除重复数据、DISTINCT用法

    目录 一.查找去除重复数据 二.删除重复数据 三.DISTINCT用法 一.查找去除重复数据 数据如图: id可以理解为uuid,person_sort_code可以理解为唯一的标识,但是唯一标识重复 ...

  4. sql 删除重复数据 只保留一条

    oracle 删除重复数据 只保留一条 DELETE from t_ows_compelete_rfc WHERE operation_no is null IN ( SELECT operation ...

  5. Oracle PL/SQL 删除重复数据

    参考:http://blog.itpub.net/22708224/viewspace-621116/ 问题描述: 我的需求是删除数据空中完全重复的数据 解决方案: 搜索非重复的数据(如果两行数据完全 ...

  6. MySQL中删除重复数据

    2019独角兽企业重金招聘Python工程师标准>>> 参考网页 SQL删除重复数据只保留一条 https://blog.csdn.net/anya/article/details/ ...

  7. SQL 查询重复数据并显示重复次数

    查询有重复数据的记录 select * from F group by a,b,c,d having count(*)>1 删除重复一模一样的记录,只保留一条记录 select distinct ...

  8. SQL表之间复制数据、选出随机几条数据、删除重复数据、取得自增长列等操作...

    --表之间数据复制 SELECT* INTO yozhu FROM yo --复制一份表 SELECT* INTO yozhu1 FROM yo where 1<>1 --只复制表结构,无 ...

  9. 利用sql语句删除重复数据

    记录原因: 昨天遇到一个问题:需要写一个sql语句删除重复数据.当时解决的办法,是先查询出重复的数据id,然后再单独写删除语句进行删除.今天想了想应该还是有其他办法解决的,研究了下可以通过一条语句就能 ...

最新文章

  1. 级联人脸检测--Detecting Faces Using Inside Cascaded Contextual CNN
  2. RSA javascript加密 lua解密
  3. shell常用命令总结总结
  4. VS2010附加进程调试DLL时断点无法断下的解决方法
  5. mysql 列换行 表设计 设计_今天来讲一下怎么利用MySql进行库表设计
  6. 【Python】文本进度条
  7. 搭建servlet+jsp环境
  8. 独家揭秘:用友云的新打算
  9. failed to load ldlinux.c32
  10. 动易 当前服务器不允许上传文件,动易网站详细安说明及常见疑难解答.doc
  11. 如何用电子书来做网络营销
  12. 学习线性代数-行列式 笔记(一)
  13. [android] app运行在夜神模拟器上
  14. php 删除其他盘符,Linux_自动清除电脑垃圾及删除windows默认共享盘符的批处理bat,by:zuifeng258Windows在默认情况下 - phpStudy...
  15. 破开C语言暗夜的第二道光 —— 数据与数据类型(1)
  16. 他是国家的儿子 如不再优秀请原谅他
  17. java需要学哪些知识习
  18. 生成对抗网络GAN原理——浅显易懂,个人收藏
  19. 大学生一定要理解的十五件事!
  20. 模块化规范CommomJS特性介绍_web前端培训

热门文章

  1. AndroidTV开发13——实现TV端大图浏览
  2. Spring Security 集成 Authing CAS 认证(三)
  3. 如何将pdf大小压缩?怎么缩小pdf的文件大小?
  4. H5搜索功能iOS键盘“换行”改为“搜索”
  5. npm命令运行时报错_npm命令报错整理
  6. Python安装rospy模块
  7. 施坦威钢琴扩展在华市场,北京顺义旗舰店开业
  8. K8s Node节点ROLES显示修改
  9. 极速office(Word)怎么插入艺术字
  10. Linux让终端走Sock5代理