ORACLE 分析函数应用(一) 记录排名
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,初学PL/SQL。在oracle中,使用RANK,DENSE_RANK和ROW_NUMBER这3个分析函数都可以进行对记录的编号,在处理记录排名方面可以考虑使用以上三种方法之一。RANK:通过对ord
千家信息网最后更新 2025年01月23日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安全错误
数据库的锁怎样保障安全
数据库中name什么意思
网络安全法观后感300字
常州信息软件开发产品介绍
数据库有几种基本类型
正规网络技术分类产品介绍
网络安全基础防范情况总结
服务器2003系统怎么安装u盘
杭州宏韵互联网科技
数据库技术协议
ado 数据库连接
将数据库中表的数据按大小排序
个人查询网络安全大队
福建行业专业软件开发
pg数据库对象命令大全
太原软件开发本科无经验招聘
金融软件开发是干啥的
网络安全服务商英文
哈尔滨市群力对日软件开发公司
软件开发行业的风险
洛阳app软件开发费用
服务器如何转移虚拟机
网络技术给物流带来的风险
青岛安卓软件开发公司
战地5怎么找到之前游玩的服务器
数据库中创建登录用户的待遇
大数据和云计算软件开发
winapp用什么软件开发好
全省教育系统网络安全
数据库除法运算多属性
云计算的网络安全问题