[SQL] 047. COLUMN을 ROW로 출력하기

Updated:

초보자를 위한 SQL 200제 교재를 토대로 공부한 내용입니다.

오라클 SQL을 기반으로 합니다.

실습에 사용한 테이블은 정보문화사 홈페이지에서 받을 수 있습니다.


[예시]

SUMDECODE를 사용해서 열을 행으로 출력 가능하다.

내가 이해하기 쉽게 생각하면 열 값을 새로운 열로 정의해 출력한다.

-- 각 부서별 월급 합계
SELECT 
SUM(DECODE(DEPTNO, 10, SAL)) AS "부서-10",
SUM(DECODE(DEPTNO, 20, SAL)) AS "부서-20",
SUM(DECODE(DEPTNO, 30, SAL)) AS "부서-30"
FROM EMP;

[결과]

GROUP BY로 부서별 합계를 구하면 합계라는 컬럼에 세 개의 값이 존재 할 것이다.

이를 전치한 형태로 출력하였다.

부서-10 부서-20 부서-30
8750 10875 9400

[예시2]

다음은 GROUP BY를 이용해 직업별, 부서별 합계를 구한 예시이다.

-- 각 직업별, 부서별 월급 합계
-- 엑셀의 피벗테이블과 비슷한 형태
SELECT JOB,
SUM(DECODE(DEPTNO, 10, SAL)) AS "부서-10",
SUM(DECODE(DEPTNO, 20, SAL)) AS "부서-20",
SUM(DECODE(DEPTNO, 30, SAL)) AS "부서-30"
FROM EMP
GROUP BY JOB
ORDER BY JOB;

[결과2]

JOB 부서-10 부서-20 부서-30
ANALYST   6000  
CLERK 1300 1900 950
MANAGER 2450 2975 2850
PRESIDENT 5000    
SALESMAN     5600

Tags:

Categories:

Updated:

Leave a comment