728x90
반응형
기존내용
PIVOT / UNPIVOT (데이터의 구조를 변경하는 기능)
출처: 홍쌤의 데이터랩 유튜브
[PIVOT 관련 내용 참고]
■ UNPIVOT
- WIDE 데이터를 LONG 데이터로 변경하는 문법
- STACK 컬럼: 이미 UNSTACK 되어 있는 여러 컬럼을 하나의 컬럼으로 STACK 시 새로 만들 컬럼 이름 (사용자 정의)
- UNSTACK 컬럼: 교차표에서 셀 자리 (VALUE) 값을 하나의 컬럼으로 표현하고자 할 때 새로 만들 컬럼명 (사용자 정의)
- 값1, 값2, ...: 실제 UNSTACK 되어 있는 컬럼 이름들
[SQL 문]
SELECT *
FROM 테이블 명 또는 서브쿼리
UNPIVOT (VALUE 컬럼명 FOR STACK 컬럼명 IN (값1, 값2, ...));
SELECT * FROM SALES UNPIVOT (CNT FOR 년도 IN ("2008", "2009", ...)); |
※ 만약 컬럼이 숫자형이면 쌍따옴표(") 로 묶어서 전달
예제. 아래 테이블을 생성 후 STACK 처리하는 SQL문 작성
[아래]
TAB DAY_SALES
DAY | 오전 | 오후 |
01 | 10 | 20 |
02 | 39 | 45 |
03 | 13 | 24 |
[SQL 문]
SELECT *
FROM DAY_SALES
UNPIVOT (구매건수 FOR 시간대 IN (오전, 오후));
※ 컬럼명은 대명사이므로, 쌍따옴표 붙으면 안 됨(연도 같은 숫자형 제외)
▼
DAY | 시간대 | 구매건수 |
01 | 오전 | 10 |
01 | 오후 | 20 |
02 | 오전 | 39 |
02 | 오후 | 45 |
03 | 오전 | 13 |
03 | 오후 | 24 |
[출처]
홍쌤의 데이터 랩 유튜브
728x90
반응형
'자격증 > SQLD' 카테고리의 다른 글
[SQLD] 34회 기출문제 오답노트 (0) | 2024.03.02 |
---|---|
[SQLD] 30회 기출문제 오답 노트 (0) | 2024.03.02 |
[SQLD] PIVOT/UNPIVOT (보강-1) (0) | 2024.03.01 |
[SQLD] TOP N Query (보강) (3) | 2024.03.01 |
[SQLD] 윈도우 함수 - ROW_NUMBER, PARTITION BY 예제 및 풀 (1) | 2024.02.27 |