1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
 select * from people
 where peopleId in (select  peopleId  from  people  group  by  peopleId  having  count(peopleId) > 1)

 例二:
 select * from testtable
 where numeber in (select number from people group by number having count(number) > 1 )
 可以查出testtable表中number相同的记录
 
 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
 
 )

sql重复记录查询的更多相关文章

  1. SQL重复记录查询(转载)

     1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people )  例二:  select * from testtable  where ...

  2. SQL重复记录查询的几种方法(转)

    1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 代码如下: select * from people ) 2.删除表中多余的重复记录,重复记录是根据单个字段(people ...

  3. 收藏:SQL重复记录查询 .

    来自:http://blog.csdn.net/chinmo/article/details/2184020 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select ...

  4. SQL重复记录查询-count与group by having结合查询重复记录

    查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select  peopleId  from  p ...

  5. SQL重复记录查询的几种方法

    http://www.jb51.net/article/34820.htm \ 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 复制代码 代码如下: select * f ...

  6. **SQL某一表中重复某一字段重复记录查询与处理

    sql某一表中重复某一字段重复记录查询与处理   1.查询出重复记录  select 重复记录字段 form  数据表 group by houseno having count(重复记录字段)> ...

  7. SQL重复记录处理(查找,过滤,删除)

    SQL重复记录处理(查找,过滤,删除)     ID int    Title nvarchar(50)    AddDate datetime    数据  www.2cto.com     ID ...

  8. sql 重复数据查询

    具体代码: ); ORDER BY tcount DESC;

  9. mysql 多个字段重复记录查询

    select * from productstockquantity t where () ORDER BY t.CombinationI

随机推荐

  1. [译]Canvas的基本用法

    在本文章中 <canvas> 元素 替换内容 </canvas> 标签不可省 渲染上下文(The rendering context如何翻译) 检查支持性 一个模板骨架 一个简 ...

  2. C#基础之枚举

    1.认识Enum 以前一直以为Enum是值类型,在VS中查看Enum的定义时才发现它是一个抽象的类.但是这个类很奇怪,Enum继承了ValueType这个很熟悉的值类型基类,它是唯一一个继承自Valu ...

  3. JavaScript实现MVVM之我就是想监测一个普通对象的变化

    http://hcysun.me/2016/04/28/JavaScript%E5%AE%9E%E7%8E%B0MVVM%E4%B9%8B%E6%88%91%E5%B0%B1%E6%98%AF%E6% ...

  4. 深入javascript

    1.不定参数的使用 <!DOCTYPE html> <html> <head> <title>json</title> <script ...

  5. 17.C#类型判断和重载决策(九章9.4)

    今天来结束第九章,聊下我们经常忽略,但是编译器会帮我们完成的"类型判断和重载决策",理解编译器如何帮我们完成,相信在写代码时会更明确,避免一些编译出错,排查的问题,让我们开发更给力 ...

  6. 关于1Byte 1K 1M 1G(换算)

    1个字节等于8位二进制 .... 1byte=8bit 1K = 1024 byte =1024byte*8b 说白一点就是 1M等于1024个K组成,而1K又等于1024B,所以1M等于1024K乘 ...

  7. WCF入门(8)

    前言 昨天买的usb无线路由到了,笔记本又可以愉快的上网了. 下午去办市民卡,被告知说“本人医保现在停保,要等继续缴才行”,白公交坐了那么远的路. 需要视频的进群,378190436. 第八集 Dif ...

  8. JAVA package-info文件【转】

    翻看以前的笔记,看到一个特殊的java文件:pacakge-info.java,虽然有记录,但是不全,就尝试着追踪一下该问题, 分享一下流水账式的结果. 首先,它不能随便被创建.在Eclipse中, ...

  9. 使用GIT来管理代码的心得

    使用GIT来管理代码,第一步当然就是下载一个GIT客户端(不知道是不是这么叫,但是觉得和客户端的功能差不多).电脑的操作系统是windows7的,所以下的是对应的GIT. 就是这玩意,安装的时候不停的 ...

  10. OC基础--成员变量的封装

    一.封装的作用: 1.重用 2.不必关心具体的实现 3.面向对象三大特征之一 4.具有安全性 二.OC中成员变量的命名规范以及注意事项 1.命名规范--.成员变量都以下划线“_”开头 1)为了跟get ...