`

oracle去除重复记录查询统计

阅读更多
  ---统计各个psam卡号的数量(oracle&mysql)。
SELECT psamcode, count( * ) AS count
FROM cms_psamcard
GROUP BY psamcode
ORDER BY count DESC
LIMIT 20

  ---oracle
delete from stu a where rowid < (select max(b.rowid) from stu b where a.no=b.no and a.name = b.name
1.rowid只是A和B表中的一个字段,估计是整数型字段;
2.这个命令是删除a表中的rowid字段小于b表中与A表中相同no.和name字段最大rowid值的记录

  ---oracle查询表中重复记录的方法(mysql中要使用rowid可创建一个整型唯一自增字段)
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)  
分享到:
评论

相关推荐

    oracle删除重复记录

    本文介绍了在Oracle数据库中如何有效识别和删除重复记录的方法。通过对表中的数据进行适当的清理,不仅可以提高数据质量,还能节省存储资源。希望本文能帮助您更好地管理和维护Oracle数据库中的数据。

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

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

    oracle 查询重复数据

    - **数据清洗**: 发现重复数据后,下一步通常是进行数据清洗,包括合并重复记录、删除多余条目或修正数据录入错误。 - **预防机制**: 在数据录入阶段实施数据验证规则,使用触发器或存储过程自动检测并防止重复数据...

    plsql删除重复记录

    在开始删除重复记录之前,首先需要确定哪些记录是重复的。以下SQL语句可以用来查询`test`表中所有字段都重复的记录: ```sql SELECT * FROM test GROUP BY name, age, sex, id, sf HAVING COUNT(*) &gt; 1; ``` 这里...

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

    这种方法适用于仅需删除重复记录中的部分行,而保留至少一行的情况。通过比较不同记录的ROWID来确定哪些记录是重复的,并利用子查询找出这些重复记录的最大ROWID,然后将其删除。 **SQL示例代码:** ```sql DELETE...

    Oracle删除表中的重复数据

    重复数据的存在不仅会占用额外的存储空间,还可能导致数据统计错误、数据分析偏差等问题,因此,有效地删除表中的重复数据是保持数据质量和提高数据库性能的重要环节。本文将详细解析如何在Oracle中删除表中的重复...

    oracle下如何删除重复数据的几种方法

    无论是部分字段重复还是完全重复的记录,都可以通过创建临时表的方式提高删除重复记录的效率。此外,在处理重复数据时,还应考虑到保留最新或最旧记录的需求,利用`ROWID`等特性可以轻松实现这一点。总之,合理地...

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

    ### 最高效的删除重复记录方法 在数据库管理过程中,删除重复记录是一项常见的需求,尤其是在数据清洗、维护数据一致性等方面。本文将详细介绍一种高效的方法来删除Oracle数据库中的重复记录,并通过具体的SQL语句...

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

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

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

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

    Oracle查询表里的重复数据方法

    本篇文章将详细介绍如何在Oracle中查询和删除重复数据。 首先,我们要明确什么是重复数据。在一个表中,如果某些字段的值相同,且这些字段被视为识别记录的关键字段,那么这些记录就被认为是重复的。例如,`person`...

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

    这个SQL语句分为两部分:查询和删除重复记录。 - **查询部分**: - 首先,它使用 `GROUP BY` 子句按 `STEEL_GRADE_ID` 分组,并统计每个分组中记录的数量。 - 然后,它使用 `HAVING COUNT(*) &gt; 1` 来筛选出重复的...

    (参考)查询和删除同一表内一个或多个字段重复记录的SQL语句.pdf

    接下来,我们将介绍三种常见的删除重复记录的方法: 1. **使用ROWID方法**: 这种方法基于Oracle数据库的ROWID属性,它是一个唯一标识每条记录的物理地址。查询重复记录的SQL如下: ```sql SELECT * FROM table...

    oracle字段去重

    如果需要物理删除重复记录,可以使用`DELETE`语句结合`ROW_NUMBER()`函数。 **示例:** ```sql DELETE FROM TABLE_NAME WHERE ROW_ID IN ( SELECT ROW_ID FROM ( SELECT ROW_ID, ROW_NUMBER() OVER (PARTITION ...

    Oracle初级(子查询).doc

    - UNION:合并两个查询结果,去除重复行。 - INTERSECT:找出两个查询结果的交集。 - MINUS:找出第一个查询结果中不在第二个查询结果中的行。 例如: ```sql (SELECT deptno FROM emp) UNION (SELECT deptno FROM ...

    oracle常用经典sql查询

    1. **UNION**:合并两个或多个SELECT查询的结果集,去除重复行。 2. **UNION ALL**:合并两个或多个SELECT查询的结果集,保留所有行。 3. **INTERSECT**:返回两个查询结果集的交集。 4. **EXCEPT**:返回第一个查询...

    Oracle 常用SQL技巧经典收藏

    3. **删除重复记录**:删除重复记录时,一种高效的方式是通过ROWID比较。例如,删除ROWID较大的重复记录,只保留ROWID最小的一条。 4. **使用TRUNCATE替代DELETE**:当需要清空表时,使用TRUNCATE命令比DELETE更快...

    oracle存储过程练习题[收集].pdf

    本文档包含五个 Oracle 存储过程练习题,涵盖了创建用户和分配权限、编写函数实现报表统计、统计成绩分布、数据导出和删除重复数据等多个方面。 1. 创建用户和分配权限 在 Oracle 中,创建用户 kaifa 并分配 ...

    oraclesql面试题

    自连接与重复记录识别 第二个题目中,需要找出`table1`表中具有相同`FID`但`Fno`不同的所有记录。这通常涉及到自连接(Self Join)的概念。有两种方法实现: ```sql -- 方法一:自连接 SELECT * FROM table1 t1, ...

Global site tag (gtag.js) - Google Analytics