利用分析函数直接求占比

 select deptno , ename,sal,sum(sal) over (partition by deptno ) cum_sal,
 ROUND(100*ratio_to_report(sal) over (partition by deptno),2) pct_dept,
 ROUND(100*ratio_to_report(sal) over (),2)  pct_overall
 from scott.emp
 order by deptno ,sal
/

--注意:当除数为0时,分析函数ratio_to_report() over()返回NULL.

请使用浏览器的分享功能分享到微信等