Oracle中删除重复记录
查找重复记录,比如sprojid是区分记录的key
SQL> select "YSZC115"."TBCDB0"."SPROJID"
2 from "YSZC115"."TBCDB0" group by sprojid having count(sProjID)>1;
SPROJID
------------------------------
0020000200603003001
0020000200603003002
0020000200603003008
0020000200603003009
0020000200603003011
0020000200603003012
0020000200603003013
0020000200603003014
0020000200603003017
0020000200603003020
0020000200603003022
SPROJID
------------------------------
0020000200603003024
0020000200603003025
0020000200603003027
已选择14行。
实际存在的记录:
SQL> select sProjID from yszc115.tbcdb0 where sProjID in (select "YSZC115"."TBCD
B0"."SPROJID"
2 from "YSZC115"."TBCDB0" group by sprojid having count(sProjID)>1);
SPROJID
------------------------------
0020000200603003001
0020000200603003001
0020000200603003002
0020000200603003002
0020000200603003008
0020000200603003008
0020000200603003009
0020000200603003009
0020000200603003011
0020000200603003011
0020000200603003012
SPROJID
------------------------------
0020000200603003012
0020000200603003013
0020000200603003013
0020000200603003014
0020000200603003014
0020000200603003017
0020000200603003017
0020000200603003020
0020000200603003020
0020000200603003022
0020000200603003022
SPROJID
------------------------------
0020000200603003024
0020000200603003024
0020000200603003025
0020000200603003025
0020000200603003027
0020000200603003027
已选择28行。
删除重复的
SQL> delete yszc115.tbcdb0 where sProjID in (select "YSZC115"."TBCDB0"."SPROJID"
2 from "YSZC115"."TBCDB0" group by sprojid having count(sProjID)>1) and
rowid not in
3 (select min(rowid) from yszc115.tbcdb0 group by sprojid having count(sProjI
D)>1);
已删除14行。
删除重复记录的方法原理:
(1).在Oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定了每条记录是在Oracle中的哪一个数据文件、块、行上。
(2).在重复的记录中,可能所有列的内容都相同,但rowid不会相同,所以只要确定出重复记录中那些具有最大rowid的就可以了,其余全部删除。
Oracle中删除重复记录相关推荐
- Oracle数据库删除重复记录的方法
Oracle数据库删除重复记录的方法,做项目的时候,一位同事导数据的时候,不小心把一个表中的数据全都搞重了,也就是说,这个表里所有的记录都有一条重复的.这个表的数据是千万级的,而且是生产系统.也就是说 ...
- mysql scrapy 重复数据_MySQL大数据量表中删除重复记录
MySQL大数据量表中删除重复记录 最近工作中需要抓取大量新闻,抓取的数据中由于一些原因存在一些重复数据,而整个数据表的记录数接近10万条,大小接近1个G,又在我自己的渣渣本本上,查询速度十分不理想, ...
- mysql语句中怎么去重复_mysql中删除重复记录sql语句
在sql中我们经常会碰到有重复的一些数据,下面我来介绍在mysql中删除重复记录的多种方法,有需要的朋友可参考参考. 删除重复记录方法一: 1. 新建一个临时表 代码如下 复制代码 create ta ...
- 在 MySQL 数据库中删除重复记录的步骤
在 MySQL 数据库中删除重复记录的步骤 当我们在处理数据库中的数据时,有时候会出现重复记录的情况,这些重复记录会影响数据的正确性,需要将其删除.下面是在 MySQL 数据库中删除重复记录的步骤: ...
- ORACLE查询删除重复记录
比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来 复制代码 代码如下: select p1.* from persons p1,perso ...
- 在SQL中删除重复记录(多种方法) [转]
学习sql有一段时间了,发现在我建了一个用来测试的表(没有建索引)中出现了许多的重复记录.后来总结了一些删除重复记录的方法,在Oracle中,可以通过唯一rowid实现删除重复记录:还可以建临时表来实 ...
- ORACLE查询删除重复记录三种方法
比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来 复制代码代码如下: select p1.* from persons p1,perso ...
- MYSQL中删除重复记录
这是个老生常谈的话题,我们在sql中删除一条重复的记录我们可以[以用户表user为例,包含id,name,value三个字段信息]: delete from 表 where id not in (se ...
- 解决Mysql中删除重复记录的问题
题记 本文主要介绍Mysql数据库表中,如何删除相同索引值.更新日期较早的记录行. 1.相同记录的由来 以Mysql为例,根据表的设计原则,表中不可能存在两条完全相同的记录. 第一范式(1NF):字段 ...
- Oracle中去重复记录 不用distinct
用distinct关键字只能过滤查询字段中所有记录相同的(记录集相同),而如果要指定一个字段却没有效果,另外distinct关键字会排序,效率很低 . select distinct name fro ...
最新文章
- Could not download lint-gradle.jar (com.android.tools.lint:lint-gradle:26.4.
- 2020年人工神经网络第二次作业-参考答案第七题
- 事实表和维度表是怎么造数据_从电商数据指标到电商数据中台
- linux下面firefox设置跳转的时候的页面颜色为黑色
- 过年了,是不是应该写点代码祝福别人
- ES5-4 函数基础与种类、形实参及映射、变量类型
- [APIO2016] 划艇(dp + 组合数 + 前缀和优化)
- JAVA基础学习大全(笔记)
- 前端学习(3154):react-hello-react之脚手架文件介绍
- PHP的OB缓存(输出缓存)
- Python中的X[:,0]和X[:,1]
- 【精心挑选】推荐几款非常棒的 jQuery 全景图片展示插件
- msfvenom 生成php木马,利用msfvenom生成木马程序
- 全志V3s IIC控制器驱动分析
- 记录Request + BeautifulSoup爬取中国现代诗歌大全网站上的4000+现代诗的过程
- python魔方程序算法_《Python基础教程》第9章 魔方方法、属性和迭代器
- SEM数据该如何分析?
- 蚂蚁集团:科技以改名为本?
- 对HDR视频进行抽帧,保存为OpenEXR格式的文件
- JUC并发编程之Callable接口、JUC三大辅助类
热门文章
- 【电路仿真】基于matlab Simulink红绿灯车辆数量识别【含Matlab源码 378期】
- BrainOS —最像大脑的AI
- Cannot read property 'style' of null 问题
- python:遍历文件夹下的所有文件
- c语言 json_dumps,关于json.dumps中的参数,例如ensure_ascii
- bm算法java,图解 BM 算法
- Redis入门到精通-Redis集群搭建
- 【静态化平台】☞( 一)网页静态化服务
- 50个Android开发技巧(02 延迟载入和避免反复渲染视图)
- STL vector使用方法介绍