美文网首页
DM7表中有重复数据处理办法

DM7表中有重复数据处理办法

作者: 喵咪很生气 | 来源:发表于2020-09-04 15:29 被阅读0次

问题描述:
如何删除数据库中的重复数据
问题原因:
某些时候,数据库中需要添加新的唯一性约束,但是数据库中已经存在了重复的数据,此时需要删除重复的数据
解决方法:
查询重复的数据:

select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1

备注:将上面的>号改为=号就可以查询出没有重复的数据了。
(1)Oracle删除重复数据的SQL(删除所有,重复的一个都不留)删除重复数据的基本结构写法:

delete from 表名 a where 字段1,字段2 in
(select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1)

不过这种删除执行的效率非常低,建议先将查询到的重复的数据插入到一个临时表中,然后对进行删除,这样,执行删除的时候就不用再进行一次查询了。如下:

CREATE TABLE 临时表 AS  (select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1)
delete from 表名 a where 字段1,字段2 in (select 字段1,字段2 from 临时表);

(2)删除重复数据的SQL(重复的留下一条记录)使用ROWID查询重复数据:

select a.rowid,a.* from 表名 a where a.rowid != 
(select max(b.rowid) from 表名 b where a.字段1 = b.字段1 and a.字段2 = b.字段2 )

括号中的SQL查询出rowid最大的记录,而外面就是查询出除了rowid最大之外的其他重复的数据了。
删除重复数据(留下最大ROWID的一条)

delete from 表名 a  where a.rowid != 
(select max(b.rowid) from 表名 b where a.字段1 = b.字段1 and a.字段2 = b.字段2 )

当然,上面语句的执行效率是很低的,可以考虑建立临时表,讲需要判断重复的字段、rowid插入临时表中,然后删除的时候在进行比较。

create table 临时表 as  select a.字段1,a.字段2,MAX(a.ROWID) dataid from 正式表 a GROUP BY a.字段1,a.字段2; 
delete from 表名 a where a.rowid != 
(select b.dataid from 临时表 b where a.字段1 = b.字段1 and a.字段2 = b.字段2 );
commit;

以列形式删除重复数据

delete from test1 where  a in (select a from test1 group by a having count(a) > 1)
删除操作有风险,搞事以前

先备份

create table 备份表 as select * from 原表;

O_O

相关文章

  • DM7表中有重复数据处理办法

    问题描述:如何删除数据库中的重复数据问题原因:某些时候,数据库中需要添加新的唯一性约束,但是数据库中已经存在了重复...

  • 谁说菜鸟不会数据分析-入门篇(第4章 三心二意--数据处理)

    1.数据处理 1.1 数据清洗 重复数据的处理:COUNTIF法,删除重复数据法,透视表法等 缺失数据的处理:方法...

  • 数据分析(谁说菜鸟不会数据分析笔记)二

    一、数据表 字段与记录组成 包括一维表和二维表,可以用数据透视表完成一维表和二维表的转换 二、数据处理 1、重复数...

  • 数据清洗

    数据清洗 重复数据处理(推荐使用顺序) 数据透视表可统计数据重复次数和重复数据 选中A、B两列,点击插入选项卡-数...

  • 重复数据处理

    3.2.2重复数据处理; 用几种不同的方法可以找出一张表中的重复数据 1.对区域中满足单个制定条件的单元格进行计数...

  • Excel学习二

    3.2.2重复数据处理; 用几种不同的方法可以找出一张表中的重复数据 1.对区域中满足单个制定条件的单元格进行计数...

  • 用PowerQuery判定同一行是否有重复值

    有下面这样的表,如果同一行中有重复的数字,则标记“相同”;如果没有重复的数字,则标记“ok”。

  • 【OFFICE 365】多字段排序和重复值删除

    去重是数据处理中常用的操作,在 Excel 中使用【多字段排序 + 删除重复值】是一个不错的去重办法。在此之前,我...

  • 1 duplicate symbol for architect

    1、错误提示 2、分析错误原因项目中有一个重复项 3、解决办法去工程中找到重复的类或者重复定义枚举。。。删掉一个

  • 达梦7迁移过程中常用sql整理

    --dm7禁用/启用所有用户模式触发器 --dm7禁用/启用所有用户模式外键 --扩充日志文件(也可在manage...

网友评论

      本文标题:DM7表中有重复数据处理办法

      本文链接:https://www.haomeiwen.com/subject/knizsktx.html