[SQL] 분석함수 PIVOT

·2025년 7월 4일

SQL

목록 보기
63/126

⚠️ pivot문 별칭 사용 X

문제1. 위의 결과를 먼저 sum 과 decode 를 이용해서 구현하시오

select  sum(decode(deptno, 10, sal, null )) as "10",
        sum(decode(deptno, 20, sal, null )) as "20",
        sum(decode(deptno, 30, sal, null )) as "30"
 from emp;

문제2. 위의 결과를 pivot 문으로 구현하시오

select *
 from (select deptno, sal from emp)
 pivot ( sum(sal) for deptno in (10,20,30) );

💡 여기서 from절에는 emp만 쓰면 안되고
필요한 데이터만 선별해서 써야함


문제3. 직업과 직업별 토탈월급을 pivot 문으로 가로로 출력하시오

select *
 from (select job, sal from emp)
 pivot (sum(sal) for job in ('ANALYST' as ANALYST,
                             'SALESMAN' as SALESMAN,
                             'CLERK' as CLERK,
                             'MANAGER' as MANAGER,
                             'PRESIDENT' as PRESIDENT));

문제. emp21 테이블에서 통신사, 통신사별 평균나이를 pivot 문으로 가로로 출력하시오

select *
 from (select telecom, age from emp21)
 pivot (avg(age) for telecom in ('SKT' as SKT,
                                        'KT' as KT,
                                        'LG' as LG));

0개의 댓글