`
流浪鱼
  • 浏览: 1673483 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle查找重复数据和删除重复数据sql

 
阅读更多

查找重复数据sql(思路就是根据需要判断重复数据的字段分组,根据having大于2的就是重复的)

--查找某表重复数据
select BUSS_TYPE_ID,
         BUSS_TYPE,
         TRADE_VARIETY_ID,
         TRADE_VARIETY,
         TRADE_SUBVARIETY_ID,
         TRADE_SUBVARIETY,
         TRADE_CODE,
         TRADE_OBJECT,
         count(id)
    from T_RPT_BUSINESS_STRUCTURE
    where jys_id=6
   group by BUSS_TYPE_ID,
            BUSS_TYPE,
            TRADE_VARIETY_ID,
            TRADE_VARIETY,
            TRADE_SUBVARIETY_ID,
            TRADE_SUBVARIETY,
            TRADE_CODE,
            TRADE_OBJECT
       having count(id) >= 2;

 删除重复数据的sql

       
delete from T_RPT_BUSINESS_STRUCTURE where 
       (BUSS_TYPE_ID,
         BUSS_TYPE,
         TRADE_VARIETY_ID,
         TRADE_VARIETY,
         TRADE_SUBVARIETY_ID,
         TRADE_SUBVARIETY,
         TRADE_CODE,
         TRADE_OBJECT)
   in(
         select BUSS_TYPE_ID,
         BUSS_TYPE,
         TRADE_VARIETY_ID,
         TRADE_VARIETY,
         TRADE_SUBVARIETY_ID,
         TRADE_SUBVARIETY,
         TRADE_CODE,
         TRADE_OBJECT
        from T_RPT_BUSINESS_STRUCTURE
       group by BUSS_TYPE_ID,
                BUSS_TYPE,
                TRADE_VARIETY_ID,
                TRADE_VARIETY,
                TRADE_SUBVARIETY_ID,
                TRADE_SUBVARIETY,
                TRADE_CODE,
                TRADE_OBJECT
           having count(id) >= 2
   ) and 
                id not in (
                   select min(id)
                  from T_RPT_BUSINESS_STRUCTURE
                 group by BUSS_TYPE_ID,
                          BUSS_TYPE,
                          TRADE_VARIETY_ID,
                          TRADE_VARIETY,
                          TRADE_SUBVARIETY_ID,
                          TRADE_SUBVARIETY,
                          TRADE_CODE,
                          TRADE_OBJECT
                     having count(id) >= 2
                )

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

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

    ### Oracle查询重复数据与删除重复记录方法 在Oracle数据库中,有时我们需要找出并处理重复的数据。这不仅可以提高数据质量,还能提升查询效率。本文将详细介绍几种常用的查询和删除Oracle数据库中重复记录的方法。...

    Oracle查询重复数据并删除,只保留一条记录.docx

    Oracle 查询重复数据并删除,只保留一条记录 Oracle 是一种关系型数据库管理系统,广泛应用于企业级数据库管理。然而,在实际应用中,数据重复问题经常会出现,例如在资源目录在线编目的资源项子表中存在多条重发...

    如何高效删除Oracle数据库中的重复数据

    - **解释**:这段代码通过ROWID来找出重复记录,并仅返回每个重复组中的非最大ROWID记录,即需要被删除的记录。 3. **创建临时表** - **原理**:先创建一个临时表存储重复记录的关键信息,再基于此表进行删除操作...

    使用Oracle查询并删除重复记录的SQL语句

    使用Oracle查询并删除重复记录的SQL语句 在实际应用中,删除重复记录是非常常见的操作,特别是在数据导入、数据整合和数据清洁等场景中。Oracle数据库提供了多种方式来查询和删除重复记录,本文将详细介绍这些方法...

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

    ### Oracle查询重复数据与删除重复记录方法 #### 一、查询重复数据 ##### 1. 使用ROWID方法 ROWID是Oracle中一个特殊的数据类型,它代表了表中每一条记录在物理存储上的唯一地址。利用ROWID可以非常高效地查询和...

    oracle删除重复数据方法

    以下是一些针对不同情况的 Oracle SQL 语句,用于查找和删除重复数据: 1. **根据单个字段删除重复数据:** 当我们需要删除基于特定字段(如 `peopleId`)的重复数据时,可以先找出这些重复项,然后删除除最小 ...

    oracle数据库各种删除重复数据方法

    ### Oracle数据库删除重复数据的方法 在Oracle数据库管理中,处理重复数据是一项常见且重要的任务。重复数据不仅会占用额外的存储空间,还可能导致数据分析时出现偏差。因此,掌握如何有效地识别并删除这些重复记录...

    Oracle重复数据清理

    2. 删除重复数据的方法:在识别出重复数据之后,通常有两种方法可以处理这些数据。第一种方法是删除重复项中除了一个之外的所有项,这可以通过编写一个带有DELETE语句的SQL查询来完成,该查询引用了用于识别重复项的...

    经常面试到的SQL题(查询重复数据和清除重复数据)

    在Oracle或SQL Server等其他数据库系统中,可以使用`MERGE`语句来删除重复数据,或者在创建新表后使用`TRUNCATE`和`RENAME`命令替换原有表。 然而,这种方法可能会遇到问题,比如当表有多个字段时,哪些字段组合...

    解决Oracle删除重复数据只留一条的方法详解

    查询及删除重复记录的SQL语句1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断select * from 表 where Id in (select Id from 表 group by Id having count(Id) > 1)2、删除表中多余的重复记录,...

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

    这是最常用的方法之一,通过GROUP BY子句和HAVING子句,可以找出重复记录并删除它们。 ```sql delete from tbl where (col1, col2) in ( select col1, col2 from tbl group by col1, col2 having count(*) > 1 ) ...

    ORACLE_SQLDeveloper使用教程

    - SQL Developer 提供了调试功能,可以逐行执行 SQL 语句,方便找出问题所在。 - 在调试模式下,可以查看变量值的变化,这对于复杂的查询非常有用。 **如何使用 SQL Developer 执行 SQL 语句(下)** 1. **高级 ...

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

    ### Oracle中用Rowid查找和删除表中的重复记录 在Oracle数据库管理中,处理重复记录是一项常见的需求,尤其是在数据量较大的情况下。本文将详细介绍如何利用Rowid这一特性来有效地查找和删除表中的重复记录。 ####...

    oracle中如何删除重复的记录

    1. **找出重复的记录**:首先,我们需要找到那些重复的记录。可以通过子查询来实现这一点。 ```sql SELECT age FROM ( SELECT age, COUNT(*) as cnt FROM user1 GROUP BY age HAVING COUNT(*) > 1 ) t; ```...

    plsql删除重复记录

    ### PL/SQL删除Oracle数据库中的重复记录方法详解 ...通过上述步骤,你可以有效地识别并删除Oracle数据库中的重复记录,从而保持数据的一致性和准确性。这种方法不仅适用于简单的场景,对于复杂的业务环境也同样适用。

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

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

    查询及删除重复记录的SQL语句.

    当我们想找出基于单一字段(如 `Id`)的重复记录时,可以使用如下的 SQL 语句: ```sql select * from 表 where Id in (select Id from 表 group by Id having count(Id) > 1) ``` 这个查询会返回所有在 `Id` ...

    oracle查询重复数据和删除重复记录示例分享

    在Oracle数据库管理中,查询和删除重复数据是常见的任务,特别是在数据清洗和数据整合的过程中。以下是一些关于如何处理重复数据的示例和方法。 首先,我们来看如何查询某个字段的重复数据。假设我们有一个User表,...

Global site tag (gtag.js) - Google Analytics