본문 바로가기
카테고리 없음

오라클 열을 행으로 변환하기 (UNPIVOT)

by kangs' tong 2023. 11. 15.

오라클 열을 행으로 변환하기 (UNPIVOT)

환영합니다! 오늘은 오라클의 기능 중 하나인 UNPIVOT에 대해 알아보겠습니다. UNPIVOT은 열을 행으로 변환하는 기능으로, 데이터의 구조를 재조정할 때 유용하게 사용됩니다.

UNPIVOT이란 무엇인가요?

UNPIVOT은 오라클에서 제공하는 데이터 변환 기능 중 하나입니다. 이 기능은 열에 저장된 값을 행으로 변환하여 조회할 수 있도록 해줍니다. 일반적인 테이블의 형태에서 열의 값은 특정한 데이터 속성을 의미하고, 행은 해당 값들의 조합을 나타냅니다. 하지만 때로는 열에 저장된 값들을 행으로 변환하여 새로운 구조로 데이터를 가공하는 것이 필요할 수 있습니다. 이때 UNPIVOT을 사용하면 간단하게 열을 행으로 변환할 수 있습니다.

UNPIVOT의 사용법은 어떻게 되나요?

UNPIVOT을 사용하기 위해서는 다음과 같은 구문을 사용합니다:

SELECT [고정 열],
       [UNPIVOT할 열]
FROM [테이블]
UNPIVOT (UNPIVOT할 열
         FOR [열 이름] IN ([열1], [열2], ... [열n]))

위의 구문에서 [고정 열]은 값이 변환되지 않고 그대로 유지되어야 하는 열을 의미하고, [UNPIVOT할 열]은 실제로 변환될 열을 의미합니다. [열 이름]은 [UNPIVOT할 열]을 식별하기 위한 열의 이름이며, [열1], [열2], ... [열n]은 UNPIVOT할 열들의 목록입니다.

UNPIVOT의 예시를 살펴보겠습니다.

예시를 통해 UNPIVOT을 좀 더 자세히 이해해보도록 하겠습니다. 아래의 테이블을 예시로 사용하겠습니다:

CREATE TABLE Sales (
    ID NUMBER,
    Product VARCHAR2(20),
    Quarter1 NUMBER,
    Quarter2 NUMBER,
    Quarter3 NUMBER,
    Quarter4 NUMBER
);

INSERT INTO Sales VALUES (1, 'Keyboard', 100, 150, 200, 250);
INSERT INTO Sales VALUES (2, 'Mouse', 50, 75, 100, 125);

위의 테이블은 ID, Product, Quarter1, Quarter2, Quarter3, Quarter4라는 열들로 구성되어 있습니다. 각 Quarter는 해당 제품의 분기별 판매량을 의미합니다. 하지만 이 테이블은 분기별 판매량을 보기에는 적합하지 않습니다. 따라서 UNPIVOT을 사용하여 분기별 판매량을 열에서 행으로 변환해보겠습니다.

SELECT ID, Product, Quarter, Amount
FROM Sales
UNPIVOT (Amount FOR Quarter IN (Quarter1, Quarter2, Quarter3, Quarter4));

위의 쿼리를 실행하면 다음과 같은 결과를 얻을 수 있습니다:

ID | Product  | Quarter | Amount
-------------------------------
 1 | Keyboard | Quarter1 | 100
 1 | Keyboard | Quarter2 | 150
 1 | Keyboard | Quarter3 | 200
 1 | Keyboard | Quarter4 | 250
 2 | Mouse    | Quarter1 | 50
 2 | Mouse    | Quarter2 | 75
 2 | Mouse    | Quarter3 | 100
 2 | Mouse    | Quarter4 | 125

위의 결과를 보면 테이블의 구조가 UNPIVOT을 사용하여 열에서 행으로 변환된 것을 확인할 수 있습니다. 이제 분기별 판매량을 행으로 조회할 수 있게 되었습니다.

마무리

이제 UNPIVOT에 대해 알아보았습니다. UNPIVOT은 오라클에서 열을 행으로 변환하는 기능으로, 데이터 구조를 재조정할 때 유용하게 사용됩니다. 예시를 통해 UNPIVOT의 사용법과 효과를 알아보았습니다. 이를 통해 데이터 가공에 유용한 UNPIVOT을 잘 활용해보세요!

댓글