`
dy3168729
  • 浏览: 40541 次
  • 性别: 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数据库中重复的数据

    5. **删除重复数据**:在确认了要删除的重复记录后,可以使用Access的“删除查询”功能来移除它们。但请注意,删除操作是不可逆的,因此在执行前务必备份数据。 6. **自动化过程**:如果经常需要进行此操作,可以...

    SQL语句删除数据表中重复的记录

    总之,删除SQL数据表中的重复记录是一项常见的任务,可以通过结合`GROUP BY`、聚合函数(如`MAX`)以及`NOT IN`子句来实现。不过,务必谨慎操作,确保数据安全,并根据实际情况调整和优化查询。

    wxh Oracle数据库删除重复记录的方法

    根据给定的文件标题、描述和部分内容,我们可以深入探讨Oracle数据库中删除重复记录的方法,这对于维护数据完整性和提高系统性能至关重要。以下将详细介绍几种在Oracle数据库中有效删除重复记录的技术。 ### 1. ...

    实例介绍删除数据库中重复数据的几个方法

    在数据库管理过程中,删除重复记录是一项常见的需求,特别是当数据库中存在大量的冗余数据时,这不仅浪费存储空间,还可能导致查询性能下降以及数据的一致性问题。本文将详细介绍两种常见的删除数据库中重复数据的...

    通过存储过程删除Mysql数据库表中的重复记录.pdf

    在给定的存储过程`DelDuplicateRecord`中,它旨在删除具有相同标题的记录,但仅保留每个标题下最早的一条记录。这个过程适用于那些有重复数据并且希望保持数据唯一性的表。 首先,我们来详细分析存储过程的结构和...

    最高效的删除重复记录方法

    要删除表中的重复记录,首先需要确定哪些字段或组合能够唯一标识一条记录。例如,在员工信息表中,`EMP_NO` 字段通常可以作为唯一的标识符。接下来,可以通过比较这些唯一标识符来判断哪些记录是重复的,并选择适当...

    oracle中如何删除重复的记录

    这通常涉及到选择一个合适的条件,例如保留每个组中的第一条记录,然后删除其他重复项。 ```sql DELETE FROM user1 WHERE AGE IN ( SELECT AGE FROM ( SELECT AGE, ROW_NUMBER() OVER (PARTITION BY AGE ORDER...

    Oracle查询重复数据与删除重复记录方法(txt)

    本文将详细介绍几种常用的查询和删除Oracle数据库中重复记录的方法。 #### 一、查询重复数据 1. **使用ROWID** ROWID是Oracle提供的一种特殊数据类型,它表示表中行的物理地址。通过ROWID可以快速定位到表中的某...

    删除数据库中重复数据的几个方法.docx

    - **部分关键字段重复**:可以先为重复字段创建临时表,添加自增ID作为唯一标识,然后通过分组和最小值函数(`MIN`)找到每个组的第一条记录,从而保留不重复的记录。 3. **更改数据库表所属用户**: 当数据库还原...

    数据库删除完全重复和部分关键字段重复的记录

    对于部分关键字段重复的情况,通常我们需要保留重复记录中的第一条。这里以Name和Address为例,我们希望基于这两个字段得到唯一的结果集。以下是处理方法: 1. **MySQL** - 在`tableName`上新增一个自增的`autoID`...

    oracle删除重复记录

    这种方法通过子查询来确定哪些记录是重复的,然后只保留一条记录。这里提供了一个修正后的示例代码: ```sql DELETE FROM T WHERE (T.a, T.b) IN ( SELECT A.a, A.b FROM T A WHERE EXISTS ( SELECT 1 FROM T ...

    SQL语句实现删除重复记录并只保留一条

    最后,`DELETE`语句根据这些最大Id删除相应的记录,从而保留每组中Id最大的一条记录。 接下来,我们讨论几种不同的查询和删除重复记录的方法: 1. **基于单个字段**:如果你只需要根据一个字段`peopleId`来查找和...

    查找删除重复记录

    通过这种方式,可以确保保留每组中的第一条记录,并有效地删除重复记录。 总之,通过SQL查询可以高效地识别、查找并删除数据库中的重复记录,从而保持数据的完整性和准确性。根据具体情况选择合适的方法,可以更好...

    Oracle中用Rowid查找和删除表中的重复记录

    这种方法首先找出所有重复记录,然后仅保留每个重复记录组中Rowid最小的一条记录,其余记录全部删除。 2. **基于Rowid的比较** ```sql DELETE FROM cz a WHERE a.ROWID (SELECT MAX(ROWID) FROM cz b WHERE a.c1...

    mysql查找删除重复数据并只保留一条实例详解

    本文将详细介绍如何在MySQL中查找并删除重复数据,同时只保留其中一条,具体以实例进行解析。 首先,假设我们有一个名为`test`的表格,包含以下字段:`school_id`、`school_name`、`total_student`和`test_takers`...

    如何删除表中重复数据

    删除`row_num`大于1的行,即除了每个组中第一条记录外的所有记录。 ### 总结 以上介绍了三种删除表中重复数据的方法:使用临时表、使用子查询以及使用`ROW_NUMBER()`函数。不同的数据库系统可能支持的功能不同,...

    sql查询重复记录方法大全

    - 这种方法可以用于只保留每组中的一条记录。 #### 方法三:删除具有重复值的记录 **SQL语句**: ```sql DELETE FROM t_info WHERE Title IN (SELECT Title FROM t_info GROUP BY Title HAVING COUNT(*) > 1); ...

    Oracle删除表中的重复数据

    通过`ROWNUM`函数和子查询的方式,进一步保证了即使有多条记录在上述列上完全相同,也只会有一条被插入到临时表中。 3. **删除原表并重命名临时表**:最后,通过`DROP TABLE tlinkman;`和`ALTER TABLE tlinkman2 ...

Global site tag (gtag.js) - Google Analytics