[SQL] 047. COLUMN을 ROW로 출력하기
Updated:
초보자를 위한 SQL 200제 교재를 토대로 공부한 내용입니다.
오라클 SQL을 기반으로 합니다.
실습에 사용한 테이블은 정보문화사 홈페이지에서 받을 수 있습니다.
[예시]
SUM
과 DECODE
를 사용해서 열을 행으로 출력 가능하다.
내가 이해하기 쉽게 생각하면 열 값을 새로운 열로 정의해 출력한다.
-- 각 부서별 월급 합계
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 |
Leave a comment