𝙎𝙌𝙇
[MySQL] 피벗테이블 만들기 : CASE WHEN, GROUP BY
콜라맛갈비
2023. 1. 26. 22:59
728x90
SELECT Region,
SUM(case when category = 'Furniture' then orders end) 'Furniture',
SUM(case when category = 'Office Supplies' then orders end) 'Office Supplies',
SUM(case when category = 'Technology' then orders end) 'Technology'
FROM RECORD
GROUP BY region;
Region에 따른 Category별 매출을 피벗테이블로 만들거예요.
Cateogry는 Furniture, Office Supplies, Technology 3가지가 있습니다.
- 피벗테이블의 행열에 들어갈 변수를 GROUP BY에 적어주세요 (Ex. region)
- SUM(case when category = 'Furniture' then 1 end) 'Furniture'
: category가 Funiture일때 1씩 더해라. 변수 이름은 Furniture로 해라
- SUM(case when category = 'Furniture' then orders end) 'Furniture'
: category가 Funiture일때 해당하는 orders 변수를 더해라. 변수 이름은 Furniture로 해라
solvesql
solvesql.com
CASE WHEN을 할 때 COUNT를 써주지 않으면 1로만 체크됩니다.
COUNT 꼭 써주기!
ORDER_ID 중복값 때문에 정답이 아님 ->
ORDER_ID 중복값 제거
SELECT region Region, category, COUNT(DISTINCT order_id) orders
FROM records
GROUP BY region, category
[최종 코드]
728x90