본문 바로가기

Oracle/SQL

SQL 데이터 분석함수 - 원형 비율출력 Ratio_to_report

RATIO_TO_REPORT (데이터분석함수로 비율출력)

예제 :

select empno, ename, sal, 
       ratio_to_report(sal) over () as 비율, sal/sum(sal) over () as "비교비율"
from emp where deptno = 20;

→ 일부러 비교비율 식을 넣어 ratio_to_report 식이 잘 나왔나 확인해봄.

전체월급에서 월급을 나누었음. 

문제 : 위의 결과를 다시 출력 하는데, 비율이 높은 사원부터 출력

select empno, ename, sal, 
       ratio_to_report(sal) over () as 비율,
       sal/ sum(sal) over () as "비교비율"
from emp 
where deptno = 20 
order by 비율 desc;

문제 : 부서번호, 이름 월급 , 자기자신의 월급의 비율을 출력 월급의 비율이 부서번호별로 각각 출력되게 하시오

select deptno, ename, sal,
       ratio_to_report(sal) over (partition by deptno)as 비율 
from emp;

→ over 뒤의 괄호 안에는 order by 사용안되고 쓰고싶다면 from 밑에 order by 사용가능

근데 partition by deptno 가 깨지지 않게 order by deptno , sal ; 이렇게 해주어야함