oracle分析函数之ratio_to_report
2015-11-19 16:47
906 查看
ratio_to_report主要完成对百分比的计算,语法为
ratio_to_report(exp) over()
也就是根据over窗口函数的作用区间,求出作用区间中的单个值在整个区间的总值的比重
比如要求scott用户下emp表中每个员工的工资占本部门的比重
select ename,sal,deptno,ratio_to_report(sal) over(partition by deptno) ratio from emp;
需要注意的是:exp表达式不能进行ratio_to_report函数的嵌套,但是可以使用其他的函数;当sal的值乘以一个常数值的时候
并不影响最后的计算结果
比如select ename,sal,deptno,ratio_to_report(sal*100) over(partition by deptno) ratio from emp;的计算结果
和第一个sql的计算结果是一样的
如果想以%的形式来表示的话,可以通过下面的语句来实现
select ename,sal,deptno,to_char(round(ratio*100,2))||'%' baifenbi from
(select ename,sal,deptno,ratio_to_report(sal) over(partition by deptno) ratio from emp);
ratio_to_report(exp) over()
也就是根据over窗口函数的作用区间,求出作用区间中的单个值在整个区间的总值的比重
比如要求scott用户下emp表中每个员工的工资占本部门的比重
select ename,sal,deptno,ratio_to_report(sal) over(partition by deptno) ratio from emp;
需要注意的是:exp表达式不能进行ratio_to_report函数的嵌套,但是可以使用其他的函数;当sal的值乘以一个常数值的时候
并不影响最后的计算结果
比如select ename,sal,deptno,ratio_to_report(sal*100) over(partition by deptno) ratio from emp;的计算结果
和第一个sql的计算结果是一样的
如果想以%的形式来表示的话,可以通过下面的语句来实现
select ename,sal,deptno,to_char(round(ratio*100,2))||'%' baifenbi from
(select ename,sal,deptno,ratio_to_report(sal) over(partition by deptno) ratio from emp);
相关文章推荐
- oracle 数据库空表导出问题
- oracle分析函数系列之sum(col1) over(partition by col2 order by col3):实现分组汇总或递增汇总
- ORACLE 11G新特性2
- Asp.Net通过ODBC连接Oracle数据库
- oracle upper
- Oracle 11g新特性
- 通过zabora监控oracle
- oracle sql 将字符串转换成多行
- oracle存储过程和函数的区别
- oracle数据同比的时候除数为0该怎么处理
- Oracle的4类数据字典
- Oracle 增加修改删除字段
- oracle sql 日期 case when where
- Linux创建oracle11实例
- Oracle 类型转换参考
- Centos下彻底删除oracle
- 关于Oracle将小于1的数字to_char后丢掉0的解决办法
- Oracle创建表空间、创建用户以及授权、查看权限
- MyBatis中的批量插入、删除(MySql、Oracle)
- oracle dblink ora-28000