Oracle根据多列去重

article/2025/9/12 18:34:41

(1)distinct

关键词 distinct用于返回唯一不同的值,可作用于单列和多列

但必须将其放在开头,否则会提示错误
在这里插入图片描述
而若在其后添加多个变量名,则返回的将是这多个变量名不同时重复的列,因而使用distinct筛选某字段不重复记录时无法同时得到其他的信息。

此时可以采用group by函数

(2)group by

与聚合函数联用可以在取多个字段的同时去重其中一个字段

例如要显示的字段为A、B、C三个,而A字段的内容不能重复,可以如下语句:

select A, max(B), max(C), count(*) 重复次数 from [table] 
where [条件] group by A having count(*) >= (int n);

如果在上句中having加 count()>1,就可以查出记录A所有有重复的记录;

count()>=1 就可以查出所有的记录,但重复的只显示一条,并且后面有显示重复的次数。

推荐使用:

SELECT * FROM t1  WHERE ROWID IN (SELECT MAX(ROWID) FROM t1 GROUP BY id, name;

上式可以对拥有相同id和name的数据进行去重。

ROWID是ORACLE中的一个重要的概念。用于定位数据库中一条记录的一个相对唯一地址值。通常情况下,该值在该行数据插入到数据库表时即被确定且唯一。

ROWID是一个伪列,并不实际存在于表中。它是ORACLE在读取表中数据行时,根据每一行数据的物理地址信息编码而成的一个伪列。所以根据一行数据的ROWID能找到一行数据的物理地址信息。从而快速地定位到数据行。数据库的大多数操作都是通过ROWID来完成的,而且使用ROWID来进行单记录定位速度是最快的。

ROWID采用64进制编码:A ~ Z表示0到25;a ~ z表示26到51;0 ~ 9表示52到61;+表示62;/ 表示63;一共64个字符。

查看ROWID:

SELECT A.*, ''||A.ROWID FROM STUINFO A;

在这里插入图片描述
表格数据的构建见文章末尾

将同班、同名的信息进行去重:

SELECT * FROM STUINFO WHERE ROWID IN (SELECT MIN(ROWID) FROM STUINFO WHERE CLASSNO IS NOT NULL
GROUP BY STUID, STUNAME )  ORDER BY STUID;

在这里插入图片描述


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

相关文章

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 变量…

查看MySQL初始密码并修改

查看MySQL初始密码并修改 1.安装时的初始密码查看: 当安装mysql的服务:mysqld --install 初始化mysql,在这里,初始化会产生一个随机密码,如下图框框所示,记住这个密码,后面会用到(mysqld --initialize --…