반응형
안녕하세요, 오늘은 UNPIVOT을 사용하는 방법을 소개드리도록 하겠습니다.
지난 번 PIVOT 사용법도 업로드 하였으니 참고 부탁드립니다.
PIVOT은 특정 행의 값들을 열로 변환해주는 함수입니다. 그의 반대 개념을 가진 함수가 UNPIVOT 입니다.
https://jjin-todo.tistory.com/entry/MS-SQLPIVOT%EC%82%AC%EC%9A%A9%EB%B2%95
1. UNPIVOT 이란?
특정 열들을 행의 집합으로 변환해주는 함수 (가로 -> 세로)
이미지로 보시면 이해가 편하실 거에요. (이해를 위한 간단한 이미지입니다. )
2. UNPIVOT 사용법
SELECT *
FROM ( 테이블 및 집계할 쿼리문 ) AS tab
UNPIVOT ( 집계값 컬럼명 FOR 언피봇 대상 컬럼명 IN ([UNPIVOT할 컬럼값], ... ) AS unpvt
- 집계값 컬럼명: 기존 테이블의 행 데이터를 담을 새 컬럼명을 지정
- 언피봇 대상 컬럼명: 기존 테이블의 컬럼들을 데이터로 담을 새 컬럼명 지정
- UNPIVOT할 컬럼값: 기존 테이블의 컬럼명
3. UNPIVOT 사용예제
CREATE TABLE #PRICE (
PRODUCT VARCHAR(10)
, 올리브영 INT
, 아리따움 INT
, 화해 INT
)
INSERT INTO #PRICE(PRODUCT, 올리브영, 아리따움, 화해)
VALUES
('클렌징폼',10000,5000,23000)
, ('립스틱',10000,5000,23000)
, ('블러셔',10000,5000,23000)
, ('쿠션',10000,5000,23000)
SELECT PRODUCT
, 판매처
, 가격
FROM #PRICE
UNPIVOT (가격 FOR 판매처 IN ([올리브영],[아리따움], [화해])) AS UNPVT
SELECT PRODUCT, MIN(가격) AS 최저가
FROM (
SELECT PRODUCT
, 판매처
, 가격
FROM #PRICE
UNPIVOT (가격 FOR 판매처 IN ([올리브영],[아리따움], [화해])) AS UNPVT
) AS A
GROUP BY PRODUCT
반응형
'MS SQL' 카테고리의 다른 글
CASE WHEN 함수 사용법, SELECT , UPDATE, WHERE 절 활용 방법 (0) | 2023.08.03 |
---|---|
MS SQL_REPLACE, TRANSLATE 함수로 다중 문자열 치환하는 방법 (0) | 2023.08.02 |
MS SQL_최상위 데이터, 최하위 데이터 구하는 방법 (0) | 2023.04.24 |
MS SQL_SQL 계정의 암호가 만료되었습니다. (0) | 2023.03.06 |
MS SQL 대소문자 변환 및 대소문자 구분 검색 (0) | 2023.01.27 |