SELECT
region as Region,
COUNT(DISTINCT CASE WHEN category='Furniture' THEN order_id END) as Furniture,
COUNT(DISTINCT CASE WHEN category='Office Supplies' THEN order_id END) as 'Office Supplies',
COUNT(DISTINCT CASE WHEN category='Technology' THEN order_id END) as Technology
FROM
records
GROUP BY
region
ORDER BY
region ASC;
count(*)로 주문 수를 확인하면, 단일 order_id에 여러 상품들이 있을 때 문제가 된다. 따라서 category에 CASE문을 걸 때, 반환값을 order_id로 하고 DISTINCT로 중복을 제거해야 한다.