ORACLE 分析函数应用(一) 记录排名
发表于:2025-11-12 作者:千家信息网编辑
千家信息网最后更新 2025年11月12日,初学PL/SQL。在oracle中,使用RANK,DENSE_RANK和ROW_NUMBER这3个分析函数都可以进行对记录的编号,在处理记录排名方面可以考虑使用以上三种方法之一。RANK:通过对ord
千家信息网最后更新 2025年11月12日ORACLE 分析函数应用(一) 记录排名
初学PL/SQL。
在oracle中,使用RANK,DENSE_RANK和ROW_NUMBER这3个分析函数都可以进行对记录的编号,在处理记录排名方面可以考虑使用以上三种方法之一。
RANK:通过对order by 后的条件,对每一行进行编号,当比较字段相等时,两行拥有相同的编号,接下来的下一条记录进行跳号。
DENSE_RANK:排序方式同RANK,比较字段相等的记录同样拥有相同编号,接下来的下一条记录不跳号,拥有连续的编号。
ROW_NUMBER:排序方式同RANK,即使存在重复条件的记录,编号也是始终递增,拥有连续的编号。
建立emp员工表
create table emp ( empno number primary key, ename varchar2(20) not null, deptno varchar2(20) not null, sal number , hiredate date not null);
现在,需要对 emp表中不同部门的员工进行薪水的排名。
select e.*,RANK() over (partition by deptno order by sal desc nulls last) rank排名, DENSE_RANK() over (partition by deptno order by sal desc nulls last) dense排名, ROW_NUMBER() over (partition by deptno order by sal desc nulls last) row排名 from emp e order by deptno;
获得结果如下:
比较第五条记录的rank排名和dense排名就会得到跳号与不跳号的区别,而ROW_NUMBER不论比较条件的值是否是相同的,总是会顺序递增的进行编号。这三种不同函数适用于不同的业务场景。
另:null在窗体中会排在其他值的前面,使用 NULLS LAST 语句,使得null值排在最后。
不同
相同
条件
函数
接下来
员工
字段
方式
排序
分析
一行
业务
场景
方法
方面
窗体
结果
薪水
语句
部门
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
安全的有效数据库
软件开发就业困难吗
数据库 安全配置
服务器开启80
电脑app编程软件开发
我的世界服务器全体玩家
dell服务器电源改直流
达内云笔记数据库
数据库表重定义停止
sql数据库编辑用什么工具
南通市政管理软件开发
接入层网络技术类型的描述
网络安全技术的功能
方舟服务器管理 源码
计算机网络技术顶岗报告总结
嘉定区信息软件开发定制介绍
列举网络安全所涉及的学科名称
网络安全人有责任吗
供应链软件开发服务
cs服务器多少钱
ipfs集群式服务器设置
手动修改gps数据库
教育软件开发的毕业论文
确保网络安全的原则
汽车软件开发方向
计算机网络技术课程概括
成立了网络安全专家库
工控网络安全的风险
军用综合网络安全防护管理平台
云服务器是什么系统