본 내용은 데이터리안 'SQL 데이터 분석 캠프 입문반'을 수강하며 작성한 내용입니다.
문제 - solvesql '지역별 주문의 특징'
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
-> 계속 에러났었는데, 문제가 alias를 할 때, SQL에서는 열 별칭에 공백이나 특수 문자가 포함되는 경우, 해당 별칭을 따옴표로 감싸줘야 했다. 따라서 "Office Supplies"와 같은 별칭은 따옴표로 묶어주어야 한다.
문제 - solvesql '바겐 세일!'
SELECT order_date
, SUM(CASE WHEN discount >= 0.8 THEN quantity END) AS big_discount_items
, SUM(quantity) AS all_items
FROM records
GROUP BY order_date
HAVING all_items >= 10
AND big_discount_items >= 1
ORDER BY big_discount_items DESC
SELECT order_date
, SUM(CASE WHEN discount >= 0.8 THEN quantity ELSE 0 END) AS big_discount_items
, SUM(quantity) AS all_items
FROM records
GROUP BY order_date
HAVING all_items >= 10
AND big_discount_items >= 1
ORDER BY big_discount_items DESC
: 내 풀이도 답으로 나온다. 그러나 선생님은 discount값이 0.8이 넘지 않는 경우, 판매개수를 0으로 명시적으로 작성해줬다.