`
dy3168729
  • 浏览: 39652 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

如何删除数据库中重复的记录,删除后只保留唯一的一条记录

 
阅读更多

转载

 

在几千条记录里,存在着些相同的记录,如何能用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)

分享到:
评论

相关推荐

    Access 2000数据库系统设计(PDF)---025

    25211.2.2 将选择查询转换为生成表查询 25311.2.3 为新表建立关系 25411.2.4 使用新的tblShipAddresses表 25511.3 创建操作查询向一个表中追加记录 25611.4 用操作查询从一个表中删除记录 25711.5 更新表中多个记录...

    mysql数据库的基本操作语法

    foreign key:外键,指定该列记录属于主表中的一条记录,参照另一条数据 check:检查,指定一个表达式,用于检验指定数据 MySQL不支持check约束,但可以使用check约束,而没有任何效果; 根据约束数据列限制,约束...

    Access 2000数据库系统设计(PDF)---002

    25211.2.2 将选择查询转换为生成表查询 25311.2.3 为新表建立关系 25411.2.4 使用新的tblShipAddresses表 25511.3 创建操作查询向一个表中追加记录 25611.4 用操作查询从一个表中删除记录 25711.5 更新表中多个记录...

    Access 2000数据库系统设计(PDF)---018

    25211.2.2 将选择查询转换为生成表查询 25311.2.3 为新表建立关系 25411.2.4 使用新的tblShipAddresses表 25511.3 创建操作查询向一个表中追加记录 25611.4 用操作查询从一个表中删除记录 25711.5 更新表中多个记录...

    Access 2000数据库系统设计(PDF)---001

    25211.2.2 将选择查询转换为生成表查询 25311.2.3 为新表建立关系 25411.2.4 使用新的tblShipAddresses表 25511.3 创建操作查询向一个表中追加记录 25611.4 用操作查询从一个表中删除记录 25711.5 更新表中多个记录...

    Access 2000数据库系统设计(PDF)---003

    25211.2.2 将选择查询转换为生成表查询 25311.2.3 为新表建立关系 25411.2.4 使用新的tblShipAddresses表 25511.3 创建操作查询向一个表中追加记录 25611.4 用操作查询从一个表中删除记录 25711.5 更新表中多个记录...

    Access 2000数据库系统设计(PDF)---011

    25211.2.2 将选择查询转换为生成表查询 25311.2.3 为新表建立关系 25411.2.4 使用新的tblShipAddresses表 25511.3 创建操作查询向一个表中追加记录 25611.4 用操作查询从一个表中删除记录 25711.5 更新表中多个记录...

    Access 2000数据库系统设计(PDF)---020

    25211.2.2 将选择查询转换为生成表查询 25311.2.3 为新表建立关系 25411.2.4 使用新的tblShipAddresses表 25511.3 创建操作查询向一个表中追加记录 25611.4 用操作查询从一个表中删除记录 25711.5 更新表中多个记录...

    Access 2000数据库系统设计(PDF)---009

    25211.2.2 将选择查询转换为生成表查询 25311.2.3 为新表建立关系 25411.2.4 使用新的tblShipAddresses表 25511.3 创建操作查询向一个表中追加记录 25611.4 用操作查询从一个表中删除记录 25711.5 更新表中多个记录...

    Access 2000数据库系统设计(PDF)---012

    25211.2.2 将选择查询转换为生成表查询 25311.2.3 为新表建立关系 25411.2.4 使用新的tblShipAddresses表 25511.3 创建操作查询向一个表中追加记录 25611.4 用操作查询从一个表中删除记录 25711.5 更新表中多个记录...

    Access 2000数据库系统设计(PDF)---015

    25211.2.2 将选择查询转换为生成表查询 25311.2.3 为新表建立关系 25411.2.4 使用新的tblShipAddresses表 25511.3 创建操作查询向一个表中追加记录 25611.4 用操作查询从一个表中删除记录 25711.5 更新表中多个记录...

    Access 2000数据库系统设计(PDF)---027

    25211.2.2 将选择查询转换为生成表查询 25311.2.3 为新表建立关系 25411.2.4 使用新的tblShipAddresses表 25511.3 创建操作查询向一个表中追加记录 25611.4 用操作查询从一个表中删除记录 25711.5 更新表中多个记录...

    Access 2000数据库系统设计(PDF)---026

    25211.2.2 将选择查询转换为生成表查询 25311.2.3 为新表建立关系 25411.2.4 使用新的tblShipAddresses表 25511.3 创建操作查询向一个表中追加记录 25611.4 用操作查询从一个表中删除记录 25711.5 更新表中多个记录...

    Access 2000数据库系统设计(PDF)---029

    25211.2.2 将选择查询转换为生成表查询 25311.2.3 为新表建立关系 25411.2.4 使用新的tblShipAddresses表 25511.3 创建操作查询向一个表中追加记录 25611.4 用操作查询从一个表中删除记录 25711.5 更新表中多个记录...

    经典全面的SQL语句大全

     假如你想选出10条记录(也许是每次页面装载时的10条链接的列表),你可以用BETWEEN 或者数学等式选出第一条记录和适当数量的递增记录。这一操作可以通过好几种方式来完成,但是 SELECT 语句只显示一种可能(这里的...

    SQL2005经典问题教程

    2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下 假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集 select identity(int,1,1) as autoID, * into #Tmp from tableName select ...

    orcale常用命令

    ORACLE的数据字典是数据库的重要组成部分之一,它随着数据库的产生而产生, 随着数据库的变化而变化, 体现为sys用户下的一些表和视图。数据字典名称是大写的英文字符。 数据字典里存有用户信息、用户的权限信息、...

    会计理论考试题

    23.如果要把C盘某个文件夹中的一些文件复制到C盘的另外一个文件央中,在选定文件后,若采用拖放操作,可以用___B___目标的方法。 A、直接拖至 B、Ctrl十拖至 C、Alt十拖至 D、单击 24.Windows98中的磁盘的根文件夹是...

    2009达内SQL学习笔记

    保存在oracle数据库中的所有操作细节: spool oracleday01.txt :开始记录 spool off :开始保存细节 四、SELECT语句:选择操作、投影操作。 select:从一个或多个表中检索一个或多个数据列。包含信息:想选择...

    Oracle9i的init.ora参数中文说明

    用来建立数据库连接的唯一服务名。如果要在没有调度程序的情况下仍能连接到数据库, 请将该值设置为与例程名相同。此参数自 8.1.3 版起已废弃。 值范围: 根据操作系统而定。 默认值 :0 mts_sessions: 说明 : 指定...

Global site tag (gtag.js) - Google Analytics