Oracle over函数和rank函数学习
来源:互联网 发布:卸载macbook软件 编辑:程序博客网 时间:2024/06/05 00:33
什么是over函数?
over函数简单说就是给Oracle的分析函数加条件,而比较常见的就是结合sum(),rank()函数使用
sum() over
select empno, ename, deptno, sal, sum(sal) over (partition by deptno) as depsal from scott.emp;
结果如图:
这句sql中,我们根据部门编号对部门进行了分区,然后根据分区,求出每个部分的工资总和
我们给上面的这条sql再加一个 order by
select empno, ename, deptno, sal, sum(sal) over (partition by deptno order by sal) as depsal from scott.emp;
结果如图:
可以看到,每个部门中的员工按照工资从低到高进行了排序
rank() over
rank 函数是分级函数,这个函数必须与over函数一起使用,否则会报错:缺少窗口函数
我们先来看一段sql
select empno, sal, job, rank() over(partition by job order by sal desc) as sallevel from scott.emp;
结果如图:
我们可以清楚的看到,每个部门岗位不同薪资的排名情况
rank 函数
作为聚合函数
示例:
select rank(2000) within group(order by sal desc) as rank from scott.emp;
该sql可以计算出薪水为2000的员工,按照薪水从高到低的一个排名
作为分析函数
示例:
select ename, sal, rank() over(order by sal desc) as rank from scott.emp;
该sql将公司内员工的工资从高到低的排序
rank 和 dense_rank的区别
rank:如果有5个人,其中有两个人的排名一样,则返回类似以下结果:1,2,2,4,5
dense_rank:如果有5个人,其中有两个人的排名一样,则返回类似以下结果:1,2,2,3,4
阅读全文
0 0
- Oracle over函数和rank函数学习
- oracle rank,over partition 函数
- Oracle函数rank,over含义
- ★★ oracle rank,over partition 函数
- oracle 分组函数rank() over(),dense_rank(),row_number()
- oracle over rank dense_rank row_number 等分析函数总结
- oracle中分析函数 (over rank dense_rank row_number)
- Oracle高级查询中rank,over partition函数的使用方法
- 排名函数(ROW_NUMBER、RANK、DENSE_RANK)及OVER子句 Oracle 中分析函数用法之--rank(),dense_rank(),partition,over()
- oracle over()函数及ratio_to_report()函数学习
- dense_rank() over()、rank() over()、row_number() over分析函数
- dense_rank() over()、rank() over()、row_number() over分析函数
- rank() over,dense_rank() over,row_number() over函数的区别
- oracle分析函数之rank学习记录
- Oracle分析函数中的分组排名函数用法 Rank Over partition by
- Oracle rank和dense_rank排名函数
- Oracle rank和dense_rank排名函数
- oracle的“over partition by”的用法,over不能单独使用,要和分析函数:rank(),dense_rank(),row_number()等一起使用。
- D
- C++第五次作业
- 青春与梦想
- vim 用法
- riemann
- Oracle over函数和rank函数学习
- C++类的对象和类对象指针
- django分页代码举例
- Android App架构指南
- Linux 查看文本,搜索命令
- GIT常用命令
- vue2.0嵌套路由实现豆瓣电影分页功能(附加豆瓣web-app)
- Centos 上安装mysql+修改初始密码
- Oracle 多行数据合并成一行