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 ; 이렇게 해주어야함
'Oracle > SQL' 카테고리의 다른 글
SQL 데이터 분석함수 - 집계결과 출력 Cube (0) | 2021.11.19 |
---|---|
SQL 데이터 분석함수 - 집계결과 출력 Rollup (0) | 2021.11.19 |
SQL 데이터 분석함수 - 누적데이터 Sum () over () (0) | 2021.11.19 |
SQL 데이터 분석함수 - 전행과, 다음행 출력 Lag, Lead(컬럼, 1 or 2..)over (partition by ~ order by ~ desc/asc ) (0) | 2021.11.19 |
SQL 데이터 분석함수 - 데이터 가로출력 Listagg (컬럼명,',') within group(order by~ desc/asc ) (0) | 2021.11.19 |