前言

本文主要给大家介绍了关于MySQL中查询、删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍:

查找所有重复标题的记录:

select title,count(*) as count from user_table group by title having count>1;

SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > 1) ORDER BY Title DESC

一、查找重复记录

1、查找全部重复记录

SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > 1) ORDER BY Title DESC

2、过滤重复记录(只显示一条)

Select * From HZT Where ID In (Select Max(ID) From HZT Group By Title)

注:此处显示ID最大一条记录

二、删除重复记录

1、删除全部重复记录(慎用)

Delete 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)

2、保留一条(这个应该是大多数人所需要的 ^_^)

Delete HZT Where ID Not In (Select Max(ID) From HZT Group By Title)

注:此处保留ID最大一条记录

三、举例

1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断

select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)

2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录

delete from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)

3、查找表中多余的重复记录(多个字段)

select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)

4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录

delete from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录

select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

四、补充

有两个以上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。

1、对于第一种重复,比较容易解决,使用

select distinct * from tableName

就可以得到无重复记录的结果集。

如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除

select distinct * into #Tmp from tableName

drop table tableName

select * into tableName from #Tmp

drop table #Tmp

发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。

2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下

假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集

select identity(int,1,1) as autoID, * into #Tmp from tableName

select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID

select * from #Tmp where autoID in(select autoID from #tmp2)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

mysql去掉两个最高分_MySQL中查询、删除重复记录的方法大全相关推荐

  1. mysql删除重复文章标题_MySQL中查询、删除重复记录的方法大全

    前言 本文主要给大家介绍了关于MySQL中查询.删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍: 查找所有重复标题的记录: 一.查找重复记录 1.查找全部重复记录 2.过滤重复记录( ...

  2. MySQL中查询、删除重复记录的方法大全

    查找所有重复标题的记录: select title,count(*) as count from user_table group by title having count>1; SELECT ...

  3. ORACLE查询删除重复记录

    比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来 复制代码 代码如下: select p1.*   from persons  p1,perso ...

  4. ORACLE查询删除重复记录三种方法

    比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来 复制代码代码如下: select p1.*    from persons  p1,perso ...

  5. MySQL查询重复字段,及删除重复记录的方法

    MySQL查询重复字段,及删除重复记录的方法(转) Submitted by wiley on Thu, 09/03/2009 - 09:36 [教学] MySQL查询重复字段,及删除重复记录的方法 ...

  6. 在SQL中删除重复记录(多种方法) [转]

    学习sql有一段时间了,发现在我建了一个用来测试的表(没有建索引)中出现了许多的重复记录.后来总结了一些删除重复记录的方法,在Oracle中,可以通过唯一rowid实现删除重复记录:还可以建临时表来实 ...

  7. oracle 视图去重复,CSS_Oracle几种查找和删除重复记录的方法总结,平时工作中可能会遇到当试图 - phpStudy...

    Oracle几种查找和删除重复记录的方法总结 平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能创建唯一索引,发现重复记录. 下面总结一下几种查找和删 ...

  8. mysql去掉两个最高分_如何计算去掉一个最高分和一个最低分后的平均分?

    昨天小编在网上看到一片关于计算最终总分的文章,学习到了一个新的函数,今天小编就把这个函数也分享给小伙伴们: TRIMMEAN函数的作用:返回数据集的内部平均值. 函数参数: =TRIMMEAN(arr ...

  9. mysql去掉两个最高分_excel去掉两个(多个)最低分、最高分,求总(平均)分...

    excel去掉两个(多个)最低分.最高分,求总(平均)分 2018-09-16 一..昨天单位评议打分了,当然少不了我得参与统分,已经是第三年了,每年领导都有不一样的要求,去年是去掉最高分和最低分求平 ...

最新文章

  1. android 中文 API (41) —— RatingBar.OnRatingBarChangeListener
  2. linux socket通信tcp,基于TCP协议的socket通信
  3. python 如果你的年龄大于18_python基础
  4. 驱动框架1——什么是驱动框架?
  5. java虚拟机之一内存运行时数据区域解释
  6. 文档丨Oracle数据库异构上云最佳实践
  7. php $rs1- gt eof,PHP_PHP速成大法,简单介绍一下PHP的语法 1、嵌 - phpStudy
  8. 马斯克挽尊,回应为何电动皮卡车窗玻璃怼不过钢球...
  9. java 绘制sin函数图像_第11讲 数学软件Mathematica内置函数的使用规则
  10. 基于WinPcap获取设备列表
  11. 《一天搞懂深度学习》下载
  12. MAC协议微信自动生成带备注固定收款码免挂机监控协议回调
  13. BIO输给NIO了吗 —————— 开开开山怪
  14. 不用邀请照样申请Gmail免费邮箱
  15. 国家码信道顺从表(含数据库和配置)
  16. DELETE 语句与 REFERENCE 约束“FK_T_score_T_student_number“冲突。
  17. Matlab syms 矩阵变量,matlab syms.m
  18. 使用Laravel提交POST请求出现The page has expired due to inactivity错误
  19. 汽车众筹系统:加速建设汽车金融新生态!
  20. 互联网公司招聘奇葩黑历史

热门文章

  1. 多人聊天、预约会议,FaceTime登录Windows和Android系统
  2. 微信搜一搜产品团队:三大能力助力内容优质呈现、品牌精细增长、服务精准触达
  3. 万字长文!剖析美团外卖持续交付的前世今生
  4. Python 制作动态图表,看全球疫情变化趋势
  5. 编译器说 Lambda 表达式中的变量必须是 final 的,我偏不信 | 原力计划
  6. 防控疫情,我们在行动——爱奇艺战“疫”全纪录
  7. 【早报】这届程序员要做好会Python的准备了!
  8. 微软 CTO 韦青:5G 与亚里士多德
  9. 编程机器人哪家好?灵跃模组机器人硬核评测!
  10. 阿里火力全开 IoT!