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

select*from
people

where peopleIdin
(select peopleIdfrom peoplegroupby
peopleIdhaving
)



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

deletefrom
people

where peopleIdin
(select peopleIdfrom peoplegroupby
peopleIdhaving
)

and rowidnotin
(selectmin(rowid)from peoplegroup
)



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

select*from
vitae a

where (a.peopleId,a.seq)in
(select peopleId,seqfrom vitaegroup
)



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

deletefrom
vitae a

where (a.peopleId,a.seq)in
(select peopleId,seqfrom vitaegroup
)

and rowidnotin
(selectmin(rowid)from vitae
group
)



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

select*from
vitae a

where (a.peopleId,a.seq)in
(select peopleId,seqfrom vitaegroup
)

and rowidnotin
(selectmin(rowid)from vitae
group
)

(二)

比方说

在A表中存在一个字段“name”,

而且不同记录之间的“name”值有可能会相同,

现在就是需要查询出在该表中的各记录之间,“name”值存在重复的项;

Select Name,Count(*)From
A Group


如果还查性别也相同大则如下:

Select Name,sex,Count(*)From
A Group


(三)

方法一

declare@maxinteger,@idinteger

declare
cur_rows cursor localforselect 主字段,count(*)from
表名 group


open
cur_rows

fetch cur_rowsinto@id,@max



begin

select@max=


setrowcount@max

deletefrom
表名 where 主字段=@id

fetch
cur_rows into@id,@max

end

close
cur_rows





  方法二



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



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

selectdistinct*
from tableName



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



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

selectdistinct*
into #Tmpfrom tableName

droptable
tableName

select*into
tableNamefrom #Tmp

droptable
#Tmp



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



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



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

)as
autoID, *
into #Tmpfrom tableName

selectmin(autoID)as
autoID into #Tmp2from #Tmp
groupby Name,autoID

select*from
#Tmpwhere autoIDin(select autoIDfrom
#tmp2)



  最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)



(四)查询重复

select*from
tablenamewhere idin (

select idfrom
tablename

group
by id

having
count(id)>


)

sql记录去重(SQL查询或者删除表中重复记录)的更多相关文章

  1. MSSQL sql server 2005/2008 row_number()函数应用之–删除表中重复记录,只保留一条不重复数据

    转自:http://www.maomao365.com/?p=4942 下文主要讲述:重复数据只获取一条的方法 row_number函数在数据库中的功能是为每一行 按照一定的规则生成一个编号,我们常常 ...

  2. 查询和删除表中重复数据sql语句

      1.查询表中重复数据.select * from peoplewhere peopleId in (select   peopleId   from   people   group   by   ...

  3. SqlServer删除表中重复记录

    重复记录:有两个意义上的重复记录 一是完全重复的记录,也即所有字段均重复的记录: 二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略. 1.对于第一种重复,比较容易 ...

  4. mysql 查询及 删除表中重复数据

    CREATE TABLE `test` ( `id` INT(20) NOT NULL AUTO_INCREMENT, `name` VARCHAR(20) NULL DEFAULT NULL, `a ...

  5. oracle 查询及删除表中重复数据

    create table test1( id number, name varchar2(20) ); ,'jack'); ,'jack'); ,'peter'); ,'red'); insert i ...

  6. Oracle通过ROWID删除表中重复记录

    -- 1 通过ROWID删除T1表里重复的记录    SELECT ROWID,A,B--DELETE FROM  T1WHERE ROWID IN (  SELECT RD  FROM  (     ...

  7. sql删除表中重复记录只保留一条记录

    最终代码 update T_Fee set gzl_dfg_op = 'delete' where MetReadRecordID in ( select MetReadRecordID from T ...

  8. 使用oracle删除表中重复记录

    (1)使用用rowid方法 查询重复数据:select * from person a where rowid !=(select max(rowid) from person b where a.c ...

  9. Sql Server删除数据表中重复记录 三种方法

    本文介绍了Sql Server数据库中删除数据表中重复记录的方法. [项目]数据库中users表,包含u_name,u_pwd两个字段,其中u_name存在重复项,现在要实现把重复的项删除![分析]1 ...

随机推荐

  1. Team Foundation Server 2015 Update 2.1 发布日志

    微软在 2016年5月5日发布了Visual Studio Team Foundation Server 2015 update 2.1. 下面我们来看看Update2.1中给我们带来了哪些新功能. ...

  2. Django完整的开发一个博客系统

    今天花了一些时间搭了一个博客系统,虽然并没有相关于界面的美化,但是发布是没问题的. 开发环境 操作系统:windows 7 64位 Django: 1.96 Python:2.7.11 IDE: Py ...

  3. Android View的绘制过程

    首先是view的绘制过程~最主要的分三部分 measure layout draw 看字面意思,计算,布局,画~ android中控件相当于是画在一个无限大的画布上的,那就产生了几个问题 画布无限大, ...

  4. Objc中处理数组越界的一种办法

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) Objc的数组如果在访问时索引非法,则会抛出NSRangeEx ...

  5. DBCP连接池TestOnBorrow的坑

    生产环境连接池TestOnBorrow设置为false,导致有时获取的连接不可用.分析如下: TestOnBorrow=false时,由于不检测池里连接的可用性,于是假如连接池中的连接被数据库关闭了, ...

  6. (一〇一)集成静态库RHAddressBook实现OC访问通讯录

    使用官方的AddressBook框架仅能使用C语言访问通讯录,十分不便,这里介绍集成第三方框架RHAddressBook的方法,该框架可以通过OC访问和操作通讯录. 该框架是一个静态库,集成比较复杂. ...

  7. Objc运行时读取和写入plist文件遇到的问题

    下面是本猫保持游戏NPC和物件交互的plist文件: 随着游戏和玩家逐步发生互动,玩家会修改人物和物件的交互的状态.这也是RPG游戏最基本的功能. 在切换每个地图时需要将上一个地图发生的改变存储到pl ...

  8. SDL2源代码分析2:窗口(SDL_Window)

    ===================================================== SDL源代码分析系列文章列表: SDL2源代码分析1:初始化(SDL_Init()) SDL ...

  9. 最简单的基于FFmpeg的AVfilter例子(水印叠加)

    ===================================================== 最简单的基于FFmpeg的AVfilter例子系列文章: 最简单的基于FFmpeg的AVfi ...

  10. 毕加索的艺术——Picasso,一个强大的Android图片下载缓存库,OkHttpUtils的使用,二次封装PicassoUtils实现微信精选

    毕加索的艺术--Picasso,一个强大的Android图片下载缓存库,OkHttpUtils的使用,二次封装PicassoUtils实现微信精选 官网: http://square.github.i ...