𝙎𝙌𝙇

[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