`
ydada
  • 浏览: 7967 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

删除表中相同的记录

 
阅读更多

1、查找表中的重复记录,重复记录是根据单个字段(id)来判断
select * from people
where id in (select id from people group by peopleId having count(id) > 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)

 

分享到:
评论

相关推荐

    删除数据表中重复记录

    ### 删除数据表中重复记录 #### 知识点概述 在数据库管理中,经常会遇到需要清理数据表中重复记录的情况。这些重复记录不仅会占用不必要的存储空间,还可能导致数据分析时出现错误的结果。本文将详细介绍如何在...

    Oracle数据库删除表中重复记录的方法三则.txt

    FROM tb_channel b WHERE a.policyNo = b.policyNo AND a.classCode = b.classCode)`:通过子查询找出所有具有相同`policyNo`和`classCode`的记录中ROWID最大的那些记录,并删除它们。 **注意:** - 此方法仅...

    删除表中重复记录

    在SQL中,删除表中的重复记录是一个常见的需求,特别是在数据导入或者数据整合过程中。这个问题可以从两个方面来解决:有主键的情况和无主键的情况。下面将详细解释这两种情况下的处理方法。 一、具有主键的情况 1...

    Oracle删除表中的重复数据

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

    怎样删除数据库中重复记录

    这条语句将删除表中所有重复的记录,除了最小的那个记录以外。 查找表中多余的重复记录(多个字段) 如果我们需要根据多个字段来判断重复记录,可以使用以下语句: ``` select * from vitae a where (a.peopleId, ...

    在oracle查询删除一个表编码中相同的记录

    本文将详细探讨如何在Oracle中查询并删除一个表中编码相同的记录。 ### 一、问题背景 假设有一个名为 `T_PB_DTM_FINANCE_COST` 的表,其中包含多个字段,而我们关注的是 `STEEL_GRADE_ID` 字段。在这个场景下,...

    删除数据库中的重复记录

    2. Access的删除操作:在Access中,可以创建一个“追加查询”来将非重复记录追加到一个新的临时表,然后删除原始表,最后将临时表重命名为原始表名。这种方法比较安全,因为可以先备份数据。 三、预防重复记录 1. ...

    删除表中重复数据sql语句

    2. **删除表中多余的重复记录** - **删除单字段重复记录(保留最小ROWID)** ```sql DELETE FROM people WHERE peopleId IN ( SELECT peopleId FROM people GROUP BY peopleId HAVING COUNT(peopleId) > 1 ...

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

    以下是如何使用SQL语句来删除数据表中重复记录的详细步骤。 首先,我们来看一个简单的例子,假设我们有一个名为`Repeat`的数据表,其中存在重复的记录。要删除这些重复的记录,但保留每个唯一组合的最新(最大`id`...

    如何删除表中重复数据

    ### 如何删除表中重复数据 在数据库管理与维护的过程中,经常会遇到表中存在重复记录的问题,这不仅会造成数据冗余、浪费存储空间,还可能导致数据分析结果失真。因此,了解如何有效地删除表中的重复数据是一项重要...

    删除Access数据库中重复的记录

    在Access中一般只能查找10行大概20条重复记录,这样程序就可以任意指定表及多字段检索重复记录,并把重复的记录移除到一个临时表中,并不是进行真正删除,你可以进行恢复。但是执行第二次查找时则自动删除上次查找的...

    批量删除MySQL数据库相同前缀的数据表 v1.0

    【批量删除MySQL数据库相同前缀的数据表 v1.0】是一个针对MySQL数据库设计的实用工具,主要用于高效地删除具有特定前缀的多个数据表。在数据库管理中,尤其是在开发和测试环境中,有时需要快速清理与特定项目或功能...

    Delphi自动删除数据库中重复记录..rar

    这个压缩包文件"Delphi自动删除数据库中重复记录.."提供了一个解决方案,可能是通过 Delphi 代码来实现对数据库中重复记录的自动检测和删除。在本文中,我们将深入探讨 Delphi 与数据库交互的基本原理,以及如何编写...

    sql 删除表中的重复记录

    这里,内部查询`a`再次找到重复记录中ID最小的那些,而外部的`DELETE`语句则根据这些ID删除其他所有重复的记录。注意,这里使用了`INNER JOIN`来匹配表`T_Dor_StructStar`中的记录与ID最小的记录,然后筛选出那些ID...

    plsql删除重复记录

    ### PL/SQL删除Oracle数据库中的重复记录方法详解 在日常的数据库管理与维护工作中,我们经常会遇到需要处理数据表中的重复记录的情况。特别是在大型企业级应用中,由于各种原因(如数据导入错误、系统故障等),...

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

    - `v_duplicate_min_order`:重复记录中最小的`order`值。 - `v_duplicate_last_id`:上次处理的记录ID。 - `v_do`:标记游标是否到达了最后一个值。 - `v_id`, `v_title`, `v_order`:从游标中获取的当前记录的...

    顺序表中删除重复元素,为小实验

    "顺序表中删除重复元素" 删除重复元素是顺序表中的一种常见操作,旨在从顺序表中删除重复的元素,保持顺序表的唯一性和有序性。在本实验中,我们将使用C语言来实现顺序表中删除重复元素的功能。 数据结构 在本...

    查询和删除表中重复数据

    此查询用于找出 `student` 表中具有相同 `num` 值并且出现次数多于一次的记录,并返回这些记录的计数以及每组的最大 `name` 值。 #### 3. 使用 `DISTINCT` **示例**: ```sql CREATE TABLE table_new AS SELECT ...

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

    这条 SQL 语句的意思是从 `EMP` 表中删除那些 `EMP_NO` 相同且其 ROWID 大于所有具有相同 `EMP_NO` 的记录中最小 ROWID 的记录。这样可以保留每个 `EMP_NO` 对应的第一条记录,而删除其他重复记录。 ##### 方法二:...

    mysql中多表删除其中ID相同记录的方法

    在MySQL数据库中,多表删除是一项常见的操作,特别是在数据整理或清理时,可能需要删除多个表中具有相同ID的记录。传统的SQL语法可能只允许单表删除,但在MySQL 4.0及以上版本,引入了对多表删除的支持,使得这个...

Global site tag (gtag.js) - Google Analytics