[오라클 SQL] 오라클 UNPIVOT 이용하여 컬럼을 로우로 전환(변환)하기


안녕하세요.

 

오늘은 오라클 UNPIVOT 절을 이용하여 컬럼을 로우로 전환하는 방법에 대해서 설명해 드리려고 합니다.

 

오라클에서 컬럼을 로우로 전환하는 방법은 여러가지가 있겠지만, 그 중에서 오늘은 UNPIVOT 함수를 이용하여 변환해 보도록 하겠습니다.

 

먼저 아래 쿼리를 이용하여 SCORE_TBL이라는 임시 테이블을 만들었습니다.


 

SCORE_TBL


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

WITH 

SCORE_TBL AS

(

    SELECT  '2019' AS YEAR, '중간고사' AS GUBUN, '88' AS KOREAN, 

                '100' AS ENGLISH, '20' AS MATH, '70' SCIENCE, '60' AS SOCIETY

    FROM DUAL    

    

    UNION ALL

    

    SELECT  '2019' AS YEAR, '기말고사' AS GUBUN, '88' AS KOREAN, 

                '100' AS ENGLISH, '90' AS MATH, '70' SCIENCE, '60' AS SOCIETY

    FROM DUAL    

)

SELECT *

FROM SCORE_TBL

 

Colored by Color Scripter

cs

 

위의 쿼리를 실행 시켜보시면 아래와 같은 데이터가 출력되는 것을 확인하실 수 있습니다.



 

그럼 이제 위의 데이터에서 과목 컬럼들을 UNPIVOT 절을 이용하여 로우로 전환해 보도록 하겠습니다.

 

UNPIVOT 절을 이용하여 컬럼 데이터를 로우로 전환


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

WITH 

SCORE_TBL AS

(

    SELECT  '2019' AS YEAR, '중간고사' AS GUBUN, '88' AS KOREAN, 

                '100' AS ENGLISH, '20' AS MATH, '70' SCIENCE, '60' AS SOCIETY

    FROM DUAL    

    

    UNION ALL

    

    SELECT  '2019' AS YEAR, '기말고사' AS GUBUN, '88' AS KOREAN, 

                '100' AS ENGLISH, '90' AS MATH, '70' SCIENCE, '60' AS SOCIETY

    FROM DUAL    

)

SELECT YEAR, GUBUN, SUBJECTS, SCORE

FROM SCORE_TBL

UNPIVOT

            (

                SCORE

                FOR SUBJECTS IN (

                                                KOREAN AS '국어',

                                                ENGLISH AS '영어',

                                                MATH AS '수학',

                                                SCIENCE AS '과학',

                                                SOCIETY AS '사회'

                                            )

            );

 

Colored by Color Scripter

cs

 

실행 결과



위와 같이 컬럼 데이터가 로우데이터로 전환돼서 데이터가 출력되는 모습을 확인하실 수 있습니다.

 

감사합니다.^^


728x90

이 글을 공유하기

댓글

Designed by JB FACTORY