SQLd: PIVOT절과 UNPIVOT절

m_ngyeong·2025년 3월 7일
0

SQLd

목록 보기
8/9

PIVOT절과 UNPIVOT절

PIVOT절

피봇(PIVOT) 연산자는 행으로 나열되어 있는 데이터를 열로 나열하여 보기 쉽게 가공하는 것이다.

  • 시간순으로 차곡차곡 쌓이는 값이나 대규모 인원의 정보는 세로로 길어 한눈에 알아보기 어려움
  • 피봇은 세로행을 가로 열로 가독성을 향상시킴
  • 대상 필드의 값 목록을 새로운 열로 만들고 각 열에 대해 집계 함수를 호출하여 결과셋을 만듦
/* Oracle: 오라클은 필드 값을 따옴표 안에 적어야함 */
SELECT * FROM tSeason
PIVOT (MAX(sale) FOR season IN ('봄', '여름', '가을', '겨울')) pvt;

/* SQL Server: 따옴표로 감싸지 않음 */
SELECT * FROM tSeason
PIVOT (MAX(sale) FOR season IN (, 여름, 가을, 겨울)) pvt;
  • FOR절: 대상 칼럼
  • IN절: 그 칼럼에서 열로 만들 값의 목록
  • 집계함수를 사용 가능하며, 값이 존재하지 않으면 NULL값을 반환함

UNPIVOT절

이름과 같이 피봇의 반대 동작을 수행한다.
피봇이 값을 열로 바꾸는데 비해 언피봇은 열을 값으로 변환하여 레코드에 기록한다.

UNPIVOT (값컬럼 FOR 대상컬럼 IN (언피봇 대상 컬럼 목록));
profile
ʚȉɞ

0개의 댓글