Oracle 数据去重

article/2025/9/12 18:48:56

在Oracle数据库中删除重复数据

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

Person01表:
在这里插入图片描述

1. 查询表中多余的重复数据,根据ID字段来判断是否重复
SELECT * FROM PERSON01 WHERE ID IN (SELECT ID FROM PERSON01 GROUP BY ID HAVING COUNT(ID) > 1)

在这里插入图片描述

2. 根据ID字段来判断是否重复删除表中多余的重复记录、重复记录根据ID字段来判断,多条重复记录只保留 ROWID 最小的那条
DELETE FROM PERSON01 WHERE (ID) IN (SELECT ID FROM PERSON01 GROUP BY ID HAVING COUNT(ID) > 1) AND ROWID NOT IN (SELECT MIN(ROWID) FROM PERSON01 GROUP BY ID HAVING COUNT(*) > 1);

在这里插入图片描述

3. 查询表中多余的重复数据,根据多个字段来判断是否重复
SELECT * FROM PERSON01 A WHERE (A.ID, A.PERSON01) IN(SELECT ID, PERSON01 FROM PERSON01 GROUP BY ID, PERSON01 HAVING COUNT(*) > 1)

在这里插入图片描述

4. 删除表中多余的重复记录,根据多个字段来判断是否重复
DELETE FROM PERSON01 A WHERE (A.ID, A.PERSON01) IN (SELECT ID, PERSON01 FROM PERSON01 GROUP BY ID, PERSON01 HAVING COUNT(*) > 1) AND ROWID NOT IN (SELECT MIN(ROWID) FROM PERSON01 GROUP BY ID, PERSON01 HAVING COUNT(*)>1)

在这里插入图片描述

5. 查询表中多余的重复数据,根据多个字段来判断是否重复,同时不包含 ROWID 最小的记录
SELECT * FROM PERSON01 A WHERE (A.ID, A.PERSON01) IN (SELECT ID, PERSON01 FROM PERSON01 GROUP BY ID, PERSON01 HAVING COUNT(*) > 1) AND ROWID NOT IN (SELECT MIN(ROWID) FROM PERSON01 GROUP BY ID, PERSON01 HAVING COUNT(*)>1)

在这里插入图片描述

二,对应的DDL与DML语句

create table PERSON01
(ID       VARCHAR2(36),NAME     VARCHAR2(200),PERSON01 VARCHAR2(200),PERSON02 VARCHAR2(200),PERSON03 VARCHAR2(200)
)
/TRUNCATE TABLE PERSON01;INSERT INTO PERSON01(ID, NAME, PERSON01, PERSON02, PERSON03) VALUES ('DDBFE6B0-4A1E-4B2D-8774-8B8C791C42D1', '张一三', '01', '02', '00');
INSERT INTO PERSON01(ID, NAME, PERSON01, PERSON02, PERSON03) VALUES ('DDBFE6B0-4A1E-4B2D-8774-8B8C791C42D1', '张一三', '01', '03', '01');
INSERT INTO PERSON01(ID, NAME, PERSON01, PERSON02, PERSON03) VALUES ('DDBFE6B0-4A1E-4B2D-8774-8B8C791C42D1', '张一三', '02', '02', '00');
INSERT INTO PERSON01(ID, NAME, PERSON01, PERSON02, PERSON03) VALUES ('315332A7-0A92-4BDB-8010-8254348DB52D', '李亮', '01', '02', '00');
INSERT INTO PERSON01(ID, NAME, PERSON01, PERSON02, PERSON03) VALUES ('315332A7-0A92-4BDB-8010-8254348DB52D', '李亮', '01', '02', '00');
INSERT INTO PERSON01(ID, NAME, PERSON01, PERSON02, PERSON03) VALUES ('818B8E20-8D38-40FD-B7FF-71D40410CF4D', '张建伟', '01', '02', '00');
INSERT INTO PERSON01(ID, NAME, PERSON01, PERSON02, PERSON03) VALUES ('EDFBC52C-6BAA-4F22-B015-771F801866D2', '王丽娟', '01', '02', '00');
INSERT INTO PERSON01(ID, NAME, PERSON01, PERSON02, PERSON03) VALUES ('EDFBC52C-6BAA-4F22-B015-771F801866D2', '王丽娟', '01', '02', '00');
INSERT INTO PERSON01(ID, NAME, PERSON01, PERSON02, PERSON03) VALUES ('72AD1837-39F0-4F3F-8030-45B61834A1D0', '徐家可', '01', '02', '00');
INSERT INTO PERSON01(ID, NAME, PERSON01, PERSON02, PERSON03) VALUES ('45059049-C54B-4A59-A8D9-8D4212AF1587', '琳琳', '01', '02', '00');
INSERT INTO PERSON01(ID, NAME, PERSON01, PERSON02, PERSON03) VALUES ('BBC41C7B-A22A-4C5B-8712-225014505228', '赵云龙', '01', '02', '00');
INSERT INTO PERSON01(ID, NAME, PERSON01, PERSON02, PERSON03) VALUES ('8F55D216-4921-49C7-AA85-8BABE500FD40', '欧路莎', '01', '02', '00');
INSERT INTO PERSON01(ID, NAME, PERSON01, PERSON02, PERSON03) VALUES ('8F55D216-4921-49C7-AA85-8BABE500FD40', '欧路莎', '01', '03', '00');

http://chatgpt.dhexx.cn/article/c9gUxhoM.shtml

相关文章

Oracle根据多列去重

(1)distinct 关键词 distinct用于返回唯一不同的值,可作用于单列和多列 但必须将其放在开头,否则会提示错误 而若在其后添加多个变量名,则返回的将是这多个变量名不同时重复的列,因而使用distinct筛选某…

oracle 数据库去重查询

oracle数据库中有如下一张表,包含id,loginid,name,researchtime等字段,其中name字段中的数据有重复,查询数据时要重复数据只取一条,利用row_number ()over(partition by 列 order by 列 desc)方法实现 1:select a.,row_number() o…

oracle去重函数

1、distinct (1)、常用的distinct select distinct column from table; (2)、统计去重后数量 select count(distinct column) from table;–查去重后数量 (3)、distinct必须放在开头 select id, distinct n…

oracle 数据库 去重查询

oracle 数据库多字段去重 方法介绍:distinct 关键字、group by 、row_number ()over(partition by 列 order by 列 desc) 我的需求是:根据某几列去重 查询出去重后的全部信息。最后我选择的是第三种方法。 我的想法:我想找出一种更简单的方…

Oracle实现去重的两种方式总结

业务场景 需要查询某数据,由于需要三张表关联查询,查询结果如下: 原始SQL语句 SELECT D.ORDER_NUM AS "申请单号" ,D.CREATE_TIME ,D.EMP_NAME AS "申请人",(SELECT extractvalue(t1.row_data,/root/row/FI13_wasteNam…

mysql默认密码的查找与修改

注:此方法仅可用于初始安装数据库或学习时使用,在实际生产中会使所有数据库文件删除,故应先提前备份相关重要数据,以免造成不必要的损失,请谨慎使用。 若使用mysqld –initialize初始化mysql数据库,会产生一…

rpm安装mysql后密码_CentOs安装Mysql和配置初始密码

装载自:https://www.cnblogs.com/FlyingPuPu/p/7783735.html 一、Mysql下载安装 使用上传命令上传至/home目录,如:rz命令(yum install -y lrzsz) 添加mysql仓库(-Uvh后面接的为你下载的rpm文件名) sudo rpm -Uvh mysql57-community-release-e…

MySQL初始密码的查看

问题:在安装MySQL过程中,以管理员身份运行cmd后进入MySQL的bin目录,然后输入命令“mysqld --initialize”后没有显示初始密码,没办法进行后续的登录怎么办? 1.打开你的MySQL的安装目录下的data文件夹(就是…

如何找到mysql的初始密码_如何查看mysql的初始密码

如何查看mysql的初始密码 发布时间:2020-08-26 11:50:11 来源:亿速云 阅读:95 作者:Leah 今天就跟大家聊聊有关如何查看mysql的初始密码,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 查看mysql的初始密码的…

[mysql]linux服务器mysql默认密码查看

通过 cat /var/log/mysqld.log | grep password 命令查看数据库的密码

centos查看mysql默认密码和修改密码

1、查看mysql默认密码: grep ‘temporary password’ /var/log/mysqld.log rootlocalhost: b_1sZou9FZrt b_1sZou9FZrt就是 2、修改mysql密码: ALTER USER ‘root’‘localhost’ IDENTIFIED BY ‘new password’; ‘new password’替换成你要设置的密…

宝塔中查看mysql默认密码

文章目录 一、查看root密码二、说明三、如何用工具连接数据库 一、查看root密码 二、说明 创建数据库后,请设置一个新的用户,授予操作该库所需的权限,并使用该用户进行数据库操作,不要将root 账户密码设置为 root 123456 admin 等…

mysql初始密码在哪个文件_mysql-5.7.26-安装教程

首先下载mysql-5.7.26-winx64安装文件,链接地址https://www.mysql.com/downloads/ 然后MySql解压地址为D:Program Filesmysql-5.7.26-winx64下 然后加入环境变量 点击系统变量下的新建按钮 输入变量名:MYSQL_HOME 输入变量值:D:Program Files…

Mac下MySql初始密码设置及mysql数据库操作

转载 : https://www.cnblogs.com/tugenhua0707/p/10725952.html 1. 首先 点击系统偏好设置 -> 点击MySQL, 在弹出的页面中,关闭服务。 2. 进入终端命令输出: cd /usr/local/mysql/bin/ 命令,回车。 3. 回车后,输入命令&…

linux mysql初始密码或者密码忘记 + mysql5.7.28忘记密码

1、编辑MySQL配置文件 vim /etc/my.cnf 加入 skip-grant-tables ps: 跳过权限验证,可免密码登录 如下图 2、重启mysql service mysqld restart 3、登录MySQL mysql -u root -p select version(); 查看版本 | version() | ----------- | 5.7.28 | 4、修…

查询MySQL初始账号密码

查询mysql数据库初始账号密码 找到初始账号和密码 sudo cat /etc/mysql/debian.cnf 进入mysql mysql -u debian-sys-maint -p 输入第1步查到的密码 进入mysql 数据库,修改密码 ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY xxxx; 不报错…

docker安装mysql,设置mysql初始密码

docker安装mysql,只需要2分钟就可以完成 docker search mysql拉取mysql镜像(https://hub.docker.com/_/mysql) docker pull mysql:5.7官网可查看存在的镜像,以及需要的版本号 运行mysql(–name 容器名称 -e MYSQL_ROOT_PASSWORD…

MySQL初始密码忘记了怎么办

相信很多小伙伴在安装MySQL的时候,会给定一个初始的密码,而这个初始的密码是很特别恶心人的,一大推大小写特殊字符,记住可能是不可能的了。那么,MySQL初始密码忘记了怎么办?就下来就让小编详细的为大家介绍…

mysql的默认密码_mysql默认密码是多少

展开全部 mysql默认密码设置如下命令就可以获得: cd/ PATH="$PATH":/usr/local/mysql/bin mysql -u root -p mysql>use mysql; mysql> UPDATE user SET password=PASSWORD("new password") WHERE user=username; mysql> FLUSH PRIVILEGES; mysql…

windows mysql默认密码_windows下mysql初始密码设置

转载自:http://blog.csdn.net/ofreelander/article/details/50802780 1.my-default.ini 改名my.ini 在解压的目录下面复制my-default.ini一份改名字为 my.ini。 2.打开 Windows 环境变量设置, 新建变量名 MYSQL_HOME , 变量值为 MySQL 安装目录路径, 在 环境变量 的 Path 变量…