一:查询及删除重复记录的SQL语句
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)
(二)
比方说
在A表中存在一个字段“name”,
而且不同记录之间的“name”值有可能会相同,
现在就是需要查询出在该表中的各记录之间,“name”值存在重复的项;
Select Name,Count(*) From A Group By Name Having Count(*) > 1
如果还查性别也相同大则如下:
Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1

(三)
方法一
declare @max integer,@id integer
declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) >  1
open cur_rows
fetch cur_rows into @id,@max
while @@fetch_status=0
begin
select @max = @max -1
set rowcount @max
delete from 表名 where 主字段 = @id
fetch cur_rows into @id,@max
end
close cur_rows
set rowcount 0

方法二
"重复记录"有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如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)
  最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)
(四)
查询重复
select * from tablename where id in (
select id from tablename
group by id
having count(id) > 1
)

Reference: http://www.cnblogs.com/sunxiaonan/archive/2009/11/24/1609439.html

转载于:https://www.cnblogs.com/garinzhang/p/3595700.html

[SQL]查询及删除重复记录的SQL语句相关推荐

  1. mysql删除重复记录语句的方法 作者: 字体:[增加 减小] 类型:转载 时间:2010-06-21 我要评论 查询及删除重复记录的SQL语句,虽然有点乱,但内容还是不错的。 . .

    mysql删除重复记录语句的方法 作者: 字体:[增加 减小] 类型:转载 时间:2010-06-21 我要评论 查询及删除重复记录的SQL语句,虽然有点乱,但内容还是不错的. 例如: id name ...

  2. SQL操作语句之查询及删除重复记录的方法

    delete from 表 where id not in(select min(id) from 表 group by name ) //删除重复名字的记录 删除之前请用语句 select * fr ...

  3. 几个删除重复记录的SQL语句

    几个删除重复记录的SQL语句 在大的数据库应用中,经常因为各种原因遇到重复的记录,造成数据的冗余和维护上的不便. 1.用rowid方法 2.用group by方法 3.用distinct方法 1.用r ...

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

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

  5. mysql删除重复的判断_MySQL中查询、删除重复记录一共有多少种方法?

    前言 本文主要给大家介绍了关于MySQL中查询.删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍: 查找所有重复标题的记录: select title,count(*) as coun ...

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

    前言 本文主要给大家介绍了关于MySQL中查询.删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍: 查找所有重复标题的记录: select title,count(*) as coun ...

  7. MySQL的查询及删除重复记录

    查询及删除重复记录的方法 (一) 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (sele ...

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

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

  9. mysql查询删除重复记录查询_mysql怎么查询和删除重复记录

    查找所有重复标题的记录: SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > ...

最新文章

  1. [转贴] 游戏服务器架构二
  2. ubuntu 16.04安装visual studio code 提示libnss3版本低:NSS = 3.26 is required
  3. java集合框架栈_自己实现集合框架(九):栈接口
  4. 在进行文字自绘时,自动换行打印
  5. 表单提交,以及标注。
  6. php行内块,块级元素和行内块元素是什么?
  7. Java面向对象(21)--内部类
  8. 离线安装 Pytorch 1.2.0 torchvision 0.3.0
  9. 如何让nginx执行python代码_生产环境部署Python语言代码(django+uwsgi+nginx)
  10. 异常的捕获 try...catch java
  11. HTML学习二_HTML常用的行级标签,常用实体字符及表单标签
  12. express koa koa2 优缺点分析
  13. 搜索。深搜学习。深度优先搜索之数字全排列。nyoj,组合数
  14. 微信小程序服务器端语言,微信小程序后端用什么语言好
  15. STM32F407单片机移植ADS1115驱动程序
  16. WebRTC协议学习之一(WebRTC简介)
  17. ImageMagick将多张图片拼接成一张图片_真没想到!照片加文字和照片拼接,微信就能做到,太方便了...
  18. 强大的web打印插件--Lodop
  19. 修复鼠标右键没有vscode快捷入口的问题
  20. python+django大学生专业社团信息管理系统

热门文章

  1. 页面加载被延迟 Firefox将禁用对DV和OV证书的OCSP检查
  2. 03. Java NIO Channel 通道
  3. 今天装了个GPS时钟
  4. php软件开发--linux进阶
  5. 微信小程序之二维仿射变换
  6. 智利可以使用支付宝嘛?_智利的水电和输电规划使用开源地理空间工具
  7. 开源项目怎么变成自己的_将产品变成开源项目的深入指南
  8. 高效pycharm使用技巧_您是否正在使用这种高效的采访技巧?
  9. JS模块化开发_思维导图
  10. Bootstrap HTML 编码规范之语言属性