用分析函数来得出的的工资 占 部门比 工资占 公司 比
--包括工名,部门 工资 需要得出部门工资的总数,某员工的工资 占所在部门总工资数的百分比,以及占总工资数的百分比
- selectdeptno,
- ename,
- sal,
- sum(sal)over(partitionbydeptnoorderbysal,ename)cum_sal,
- round(100*ratio_to_report(sal)over(partitionbydeptno),1)pct_dept,
- round(100*ratio_to_report(sal)over(),1)pct_overall
- fromemp
- orderbydeptno,sal;
通用的程序ORACLE 9 以下数据库都可以用的
- selectemp.deptno,
- emp.ename,
- emp.sal,
- sum(emp4.sal)cum_sal,
- round(100*emp.sal/emp2.sal_by_dept,1)pct_dept,
- round(100*emp.sal/emp3.sal_overall,1)pct_overall
- fromemp,
- (selectdeptno,sum(sal)sal_by_deptfromempgroupbydeptno)emp2,
- (selectsum(sal)sal_overallfromemp)emp3,
- empemp4
- whereemp.deptno=emp2.deptno
- andemp.deptno=emp4.deptno
- and(emp.sal>emp4.salor
- (emp.sal=emp4.salandemp.ename>=emp4.ename))
- groupbyemp.deptno,
- emp.ename,
- emp.sal,
- round(100*emp.sal/emp2.sal_by_dept,1),
- round(100*emp.sal/emp3.sal_overall,1)
- orderbydeptno,sal;
但是使用 分析函数 数据执行速度比较块 而且随着数据增多 速度成数量级别递增