기초 문법까지는 어렵지 않게 했지만 피봇 테이블부터 어려워지기 시작해따....
고냥 나를 위한 정리본 ㅎㅎ

스프레드 시트에서 피봇 테이블을 사용하는 것 까진 이해햇다!! 개념은 이해가 감...하지만 SQL 로 적용했을 때의 이해가 잘 가지 않았다...!! 요기서부턴 꼼꼼히 정리해볼게요😂
LeetCode #1179로 피봇 테이블 연습하기
Input:
Department table:
+------+---------+-------+
| id | revenue | month |
+------+---------+-------+
| 1 | 8000 | Jan |
| 2 | 9000 | Jan |
| 3 | 10000 | Feb |
| 1 | 7000 | Feb |
| 1 | 6000 | Mar |
+------+---------+-------+
Output:
+------+-------------+-------------+-------------+-----+-------------+
| id | Jan_Revenue | Feb_Revenue | Mar_Revenue | ... | Dec_Revenue |
+------+-------------+-------------+-------------+-----+-------------+
| 1 | 8000 | 7000 | 6000 | ... | null |
| 2 | 9000 | null | null | ... | null |
| 3 | null | 10000 | null | ... | null |
+------+-------------+-------------+-------------+-----+-------------+
input을 output 형태로 변환해줘야 함! 어떻게 ? 피봇 테이블 이용해서
1) input
2) output
output의 열을 기준으로 변수를 채워 넣어가기
SELECT id
,month
,revenue
,SUM(CASE WHEN month = 'jan' THEN revenue ELSE NULL END) AS Jan_Revenue
,SUM(CASE WHEN month = 'Feb' THEN revenue ELSE NULL END) AS Feb_Revenue
...
FROM 테이블명
GROUP BY id
이런식으로 12월까지 정리해주면, 각 달에 대한 수익이 정리된다.
중복되는 아이디 값을 하나로 묶어주기 위해서는 ID를 기준으로 그룹화를 시킨다. -> SUM()을 활용하여 NULL 값으로 생기는 오류를 해결한다.
GROUP BY 대상 값이 중복되지 않는다면 집계함수를 사용하지 않아도 되지만, 중복 값이 2개 이상일 경우, null을 이용해 걸러내야 함!!
참고 자료
https://salryujutme.tistory.com/49
https://xlworks.net/excel-pivot-basic/
오옷 ! 요즘 SQL 공부 중인데 굉장히 유용하네요 .. 더 올려주세요 ! 🤩