1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select*from people
where peopleId in (select peopleId from people groupby peopleId havingcount(peopleId) >1)
例二:
select * from testtable
where numeber in (select number from people group by number having count(number) > 1 )
可以查出testtable表中number相同的记录

2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
deletefrom people
where peopleId in (select peopleId from people groupby peopleId havingcount(peopleId) >1)
and rowid notin (selectmin(rowid) from people groupby peopleId havingcount(peopleId )>1)

3、查找表中多余的重复记录(多个字段)
select*from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae groupby peopleId,seq havingcount(*) >1)

4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
deletefrom vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae groupby peopleId,seq havingcount(*) >1)
and rowid notin (selectmin(rowid) from vitae groupby peopleId,seq havingcount(*)>1)


5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
select*from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae groupby peopleId,seq havingcount(*) >1)
and rowid notin (selectmin(rowid) from vitae groupby peopleId,seq havingcount(*)>1)

(二)
比方说
在A表中存在一个字段“name”,
而且不同记录之间的“name”值有可能会相同,
现在就是需要查询出在该表中的各记录之间,“name”值存在重复的项;
Select Name,Count(*) From A GroupBy Name HavingCount(*) >1

如果还查性别也相同大则如下:
Select Name,sex,Count(*) From A GroupBy Name,sex HavingCount(*) >1


(三)
方法一

declare@maxinteger,@idinteger

declare cur_rows cursor local forselect 主字段,count(*) from 表名 groupby 主字段 havingcount(*) >; 1

open cur_rows

fetch cur_rows into@id,@max

while@@fetch_status=0

begin

select@max=@max-1

setrowcount@max

deletefrom 表名 where 主字段 =@id

fetch cur_rows into@id,@max

end

close cur_rows

setrowcount0

方法二

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

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

selectdistinct*from tableName

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

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

selectdistinct*into #Tmp from tableName

droptable tableName

select*into tableName from #Tmp

droptable #Tmp

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

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

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

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

selectmin(autoID) as autoID into #Tmp2 from #Tmp groupby 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

groupby id

havingcount(id) >1

)

转载于:https://www.cnblogs.com/xiexingen/archive/2012/11/05/2755863.html

SQL中的重复记录操作相关推荐

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

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

  2. 如何找出SQL中的重复记录

    由于暂时不知道的原因,数据库中产生了很多完全相同的记录,我需要知道一共有多少条记录,这么多重复记录涉及多少金额.下列语句可以解决这个问题.故将其记录下来,防止下次用到的时候要再想. select *, ...

  3. mysql语句中怎么去重复_mysql中删除重复记录sql语句

    在sql中我们经常会碰到有重复的一些数据,下面我来介绍在mysql中删除重复记录的多种方法,有需要的朋友可参考参考. 删除重复记录方法一: 1. 新建一个临时表 代码如下 复制代码 create ta ...

  4. 如何删除表中的重复记录?等等常用SQL语句的积累

    1.如何删除表中的重复记录?(这里指记录的每个字段都要相同) select distinct * into #temp from tab delete tab insert tab select * ...

  5. 在 MySQL 数据库中删除重复记录的步骤

    在 MySQL 数据库中删除重复记录的步骤 当我们在处理数据库中的数据时,有时候会出现重复记录的情况,这些重复记录会影响数据的正确性,需要将其删除.下面是在 MySQL 数据库中删除重复记录的步骤: ...

  6. mysql 找表重复数据,mysql 数据表中查找重复记录

    mysql 数据表中查找重复记录 复制代码 代码如下: select user_name,count(*) as count from user_table group by user_name ha ...

  7. 查询数据库中的重复记录

    ========第一篇========= 在一张表中某个字段下面有重复记录,有很多方法,但是有一个方法,是比较高效的,如下语句: select data_guid from adam_entity_d ...

  8. mysql scrapy 重复数据_MySQL大数据量表中删除重复记录

    MySQL大数据量表中删除重复记录 最近工作中需要抓取大量新闻,抓取的数据中由于一些原因存在一些重复数据,而整个数据表的记录数接近10万条,大小接近1个G,又在我自己的渣渣本本上,查询速度十分不理想, ...

  9. Oracle 查看表中重复的记录,以及去除表中的重复记录

    --查看表中重复的记录 select tscw.L_SEC_KEY as L_BOND_KEY ,---债券内码       to_date(twcb.b_info_carrydate,'yyyyMM ...

最新文章

  1. 转载-区分C#中的Abstract函数和Virtual函数
  2. flex布局实现叠在另一个div之上_如何让一个div在另一个div的上面,求高手指点...
  3. Read file, CSV read String
  4. javascript showModalDialog,open取得父窗口的方法
  5. 【PAT乙级】1053 住房空置率 (20 分)
  6. winx官方站点改版了!
  7. 微软ASP.NET站点部署指南(3):使用Web.Config文件的Transformations
  8. 编程:要求随机产生30到小学2年级的四则运算题
  9. ASP.NET Core 2.1基于SignalR和Vue实时通讯
  10. 阿里云吕漫漪:深度解析国内首个云原生数据库POLARDB的“王者荣耀”
  11. android端和javaWeb端实现Mqtt消息推送
  12. css3弹性盒模型flex快速入门与上手(align-content与align-items)
  13. OpenModelica中的可视化仿真
  14. 线程的状态及状态转换
  15. heu oj 1011 square
  16. matlab散点图折线图_什么是散点图以及何时使用
  17. vue 基于elementUI、sortablejs的表格拖拽排序
  18. OPTIONALLY ENCLOSED BY '`'不可删除引号的情况
  19. MATLAB实现利用三个不共线的点绘制圆(包括圆心和半径的求解)
  20. Android 常用图片框架对比

热门文章

  1. linux系统中条码如何识别的,如何(可靠地)在嵌入式(无头)Linux中读取USB条形码扫描仪?...
  2. php获取post表单数据_PHP获取POST表单数据
  3. 把libreoffice集成到网页中_Python3.7.3安装教程并集成Sublime Text3
  4. mysql导入frm文件_MySQL备份文件.ibd、.frm、.MYD、.MYI的恢复教程
  5. docker 如何加入kubernetes_使用 Kind 在 5 分钟内快速部署一个 Kubernetes 高可用集群...
  6. mysql定期执行备份语句_【mysql】备份篇1:使用系统计划任务+mysqldump 定时备份mysql数据库 不用输入密码自动导出sql文件...
  7. Linux脚本实战之猜数字
  8. idea每次都要配置tomcat_电脑每次开机时间都不对?电脑每次开机都要重新设置时间解决方法...
  9. CompletableFuture源码详解之java.util.concurrent.CompletableFuture#runAsync(java.lang.Runnable)
  10. 实用:前端小白的切图技巧