본문 바로가기

SQLD

[SQLD 공부] 2024년 변경과목 공부(2과목 - PIVOT, UNPIVOT)

 

 

 

2024년부터 세부과목이 약간 변경되었다 해서 따로 정리해보았다.

나는 개정판 이전의 노랭이를 가지고 공부한터라

대략 추가/심화공부를 해야할 내용은 NULL관련 함수, PIVOT, UNPIVOT, 정규표현식, TOP N 쿼리 인듯 하다.

차례대로 정리할 예정이다!

 

참고로 52회 시험 후기를 봤을 때는 개정하고 첫 시험이라 그런지 PIVOT쪽이 아예 안나왔다고 함!

 

 

 

 

https://udemy.wjtb.co.kr/newsletter/id/10001057 참조

 

 


 

SQLD 2과목 PART2. SQL 활용 완벽 정리(2024 신유형 반영) 유튜브 참조

https://youtu.be/EXx6fjxycSY?si=LDA1D5zpCfGQjiBs 

 

 

 

 

PIVOT과 UNPIVOT

- 데이터의 구조를 변경하는 기능

 

 


1. 데이터의 구조

 

LONG DATA

- 하나의 속성이 하나의 컬럼으로 정의되어 값들이 여러 행으로 쌓이는 구조

- 다른 테이블과 조인연산이 가능한 구조

 

WIDE DATA

- 하나의 속성값이 여러 컬럼으로 분리되어 표현

- 다른 테이블과 조인연산이 불가

 

 

 


2. PIVOT

 

- LONG => WIDE

 

SELECT 필드목록 FROM 테이블명 또는 서브쿼리
PIVOT (VALUE컬럼명 FOR UNSTACK컬럼명 IN (필드값 목록));
  • 반드시 FROM절에 STACK컬럼, UNSTACK컬럼, VALUE컬럼 모두 명시
  • PIVOT절에서 선언한 VALUE, UNSTACK컬럼 제외, FROM절에 선언된 모든 컬럼은 STACK컬럼이 됨
    • (FROM절에 서브쿼리로 컬럼 미제한 시 STACK 컬럼이 많아짐)

 

 


3. UNPIVOT

 

 

-  WIDE => LONG

- STACK컬럼 : 새로 만들 컬럼이름 정의

- VALUE컬럼 : 새로 만들  컬럼이름 정의

- 필드값 목록 : 실제 UNSTACK되어있는 컬럼명

SELECT 필드목록 FROM 테이블명 또는 서브쿼리
UNPIVOT (VALUE컬럼명 FOR STACK컬럼명 IN (필드값 목록));

UNSTACK 데이터 컬럼명 작성 시 숫자xxxxx 쌍따옴표 붙여줘야함

 

 

 

 

컬럼명이 대명사라 여기는 쌍따옴표 붙이면x