[SQL] 피벗 테이블
SQL에서는 CASE WHEN
, IF
문과 집계 함수(SUM
, MAX
, AVG
)를 사용해 피벗 테이블 구현합니다.
피벗 테이블은 데이터를 집계하여 행과 열로 요약된 형태로 표현할 수 있게 해줍니다.
예시: 학생별 과목 성적을 피벗 테이블로 정리
SELECT student_id,
MAX(CASE WHEN subject = 'Math' THEN grade END) AS Math,
MAX(CASE WHEN subject = 'Science' THEN grade END) AS Science,
MAX(CASE WHEN subject = 'English' THEN grade END) AS English
FROM student_grades
GROUP BY student_id;
-
CASE WHEN
을 사용해 과목별로grade
값 추출 -
MAX
함수는 동일한student_id
를 가진 행을 하나로 합침 -
GROUP BY student_id
를 통해 학생별로 데이터 집계