피벗 테이블 (Pivot Table)

김재현·2022년 11월 2일
0

본 내용은 데이터리안 'SQL 데이터 분석 캠프 입문반' 을 수강하며 작성한 내용입니다.

피벗 테이블이란?

한글과 컴퓨터에서 내린 정의에 따르면, 피벗 테이블(Pivot Table)은 많은 양의 데이터에서 필요한 자료만을 뽑아 표를 작성해 주는 기능입니다. SQL에서도 이 피벗 테이블을 활용할 수 있습니다.

SQL에서 한 가지 기준으로 집계를 할 때는 GROUP BY를 사용하지만, 두 가지 기준으로 집계를 할 때는 pivot table을 주로 사용합니다. 예로 들어 지역별로 분기별 매출을 확인하고 싶을 때 피벗 테이블을 사용할 수 있겠죠.


피벗 테이블 : 예시

피벗 테이블 예시

이해에 도움이 되기 위해, 한글과 컴퓨터에서 제시한 피벗 테이블 예시를 조금 변형하여 SQL에서 실습해보도록 하겠습니다. 샘플 데이터를 만들고, MySQL에 Import하여 아래의 과정을 수행했습니다.

피벗 테이블을 하기 위해서는 조건문을 적극적으로 활용해야 합니다. 익숙해지기 위해 간단한 쿼리문을 작성해보았습니다.

가장 왼쪽의 name 컬럼은 조건문의 결과와 쉽게 비교할 수 있도록 하기 위해 넣어두었습니다. 쿼리문을 실행하면, 조건에 해당한 경우에 이름이 나오는데요. 이름이 아니더라도 다른 지표들이 나올 수 있게 설정할 수 있습니다.

이번에는 위의 쿼리문을 조금 바꾸어서, 조건에 해당하는 경우 매출이 나오도록 해보습니다. 그러면 생성된 컬럼에서 조건에 해당하는 경우에는 값이 나오고, 해당하지 않는 경우에는 NULL이 나옵니다.

조건문에서 작성한 조건대로 필터링이 제대로 이루어졌다는 뜻이죠. 이제 이 값들을 활용하여 집계를 할 수 있습니다. 합계를 구할 수도 있고, 평균을 낼 수도 있습니다.

저는 직급별 매출의 합계가 궁금해서 집계함수 중 SUM 함수를 사용해보았습니다. 그러면 위와 같은 결과를 확인할 수 있습니다.

이제 다음은 간단한데요. GROUP BY를 활용하여 위에서 구한 값을 세분화 해줍니다. 그러면 부서별로 직급별 매출의 합계를 확인할 수 있습니다.

SQL에서 두 가지 기준으로 집계를 할 때는 pivot table을 사용한다는 것을 기억해두시면 좋을 것 같습니다.

0개의 댓글