개요
데이터 PIVOT을 수행하는 방법은 아래와 같이 세 가지 방법이 있습니다.
1.
SUM(DECODE()) 구문을 이용한 피벗
2.
프로시저를 이용한 동적 피벗
3.
PIVOT 구문을 이용한 피벗
이 문서에서는 PIVOT 구문을 사용하여 데이터 PIVOT 수행 방법을 설명합니다.
•
PIVOT 구문은 SQL에서 제공하는 전용 피벗 기능입니다.
•
SELECT 문에 포함하여 행(Row) 데이터를 열(Column) 데이터로 변환할 수 있습니다.
참고
테스트 환경은 Tibero 6 (DB 6.0 FS06_CS_1703) 버전 환경을 사용했습니다.
방법
테스트 테이블 생성
CREATE TABLE TEST(
YEARDATA VARCHAR(4),
DATA1 VARCHAR(6),
DATA2 VARCHAR(6)
);
SQL
복사
데이터 입력
INSERT INTO TEST VALUES ('1990','100000','999999');
INSERT INTO TEST VALUES ('1991','100001','999998');
INSERT INTO TEST VALUES ('1992','100002','999997');
INSERT INTO TEST VALUES ('1993','100003','999996');
INSERT INTO TEST VALUES ('1994','100004','999995');
INSERT INTO TEST VALUES ('1995','100005','999994');
INSERT INTO TEST VALUES ('1996','100006','999993');
INSERT INTO TEST VALUES ('1997','100007','999992');
INSERT INTO TEST VALUES ('1998','100008','999991');
INSERT INTO TEST VALUES ('1999','100009','999990');
INSERT INTO TEST VALUES ('2000','100010','999989');
INSERT INTO TEST VALUES ('2001','100011','999988');
COMMIT;
SELECT * FROM TEST;
YEARDATA DATA1 DATA2
-------- ------ ------
1990 100000 999999
1991 100001 999998
1992 100002 999997
1993 100003 999996
1994 100004 999995
1995 100005 999994
1996 100006 999993
1997 100007 999992
1998 100008 999991
1999 100009 999990
2000 100010 999989
2001 100011 999988
12 rows selected.
SQL
복사
PIVOT 구문을 활용한 데이터 PIVOT 수행 예제
SELECT ~ FROM ~ PIVOT ~ 쿼리 구문을 사용하여 수행합니다.
SELECT *
FROM ( SELECT YEARDATA, DATA1 FROM TEST )
PIVOT (MAX(DATA1) FOR YEARDATA IN ('1990' AS "1990", '1991' AS "1991", '1992' AS "1992"
, '1993' AS "1993"))
UNION ALL
SELECT *
FROM ( SELECT YEARDATA, DATA2 FROM TEST )
PIVOT (MAX(DATA2) FOR YEARDATA IN ('1990' AS "1990", '1991' AS "1991", '1992' AS "1992",
'1993' AS "1993"));
1990 1991 1992 1993
------ ------ ------ ------
100000 100001 100002 100003
999999 999998 999997 999996
2 rows selected.
SQL
복사