`
txf2004
  • 浏览: 6879066 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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;

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics