ORACLE分析函数的应用例子1 over partition by

用分析函数来得出的的工资 占 部门比 工资占 公司 比
--包括工名,部门 工资 需要得出部门工资的总数,某员工的工资 占所在部门总工资数的百分比,以及占总工资数的百分比

  1. selectdeptno,
  2. ename,
  3. sal,
  4. sum(sal)over(partitionbydeptnoorderbysal,ename)cum_sal,
  5. round(100*ratio_to_report(sal)over(partitionbydeptno),1)pct_dept,
  6. round(100*ratio_to_report(sal)over(),1)pct_overall
  7. fromemp
  8. orderbydeptno,sal;

通用的程序ORACLE 9 以下数据库都可以用的
  1. selectemp.deptno,
  2. emp.ename,
  3. emp.sal,
  4. sum(emp4.sal)cum_sal,
  5. round(100*emp.sal/emp2.sal_by_dept,1)pct_dept,
  6. round(100*emp.sal/emp3.sal_overall,1)pct_overall
  7. fromemp,
  8. (selectdeptno,sum(sal)sal_by_deptfromempgroupbydeptno)emp2,
  9. (selectsum(sal)sal_overallfromemp)emp3,
  10. empemp4
  11. whereemp.deptno=emp2.deptno
  12. andemp.deptno=emp4.deptno
  13. and(emp.sal>emp4.salor
  14. (emp.sal=emp4.salandemp.ename>=emp4.ename))
  15. groupbyemp.deptno,
  16. emp.ename,
  17. emp.sal,
  18. round(100*emp.sal/emp2.sal_by_dept,1),
  19. round(100*emp.sal/emp3.sal_overall,1)
  20. orderbydeptno,sal;

但是使用 分析函数 数据执行速度比较块 而且随着数据增多 速度成数量级别递增

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值