QCC(Querty Challenge Cycle)

테이블 설명

  • Sales_SalesOrderHeader

  • Sales_SalesOrderDetail
  • Sales_Customer
  • Person_Person


문제 1


정답 코드

SELECT COUNT(DISTINCT BusinessEntityID) as customer_count
FROM Person_Person
WHERE EmailPromotion > 0 -- 0 = 이메일 프로모션을 받지 않음
AND PersonType = 'IN' -- IN = 개인(소매) 고객

나의 풀이

Distinct 안적었넹.. ㅇㅅㅇ 그래도 답이 똑같아서 정답처리 됐나보다!! ☺️

... 뭔가 시간이 오~래 걸렸을것 같은 느낌? 뭔가 알듯말듯하네^^;;;


문제2



정답 코드

SELECT c.customerid as customer_id
	, p.firstname as first_name
	, p.lastname as last_name
	, SUM(so.orderqty) AS total_quantity
	, case when SUM(so.orderqty) >= 100 then 'VIP'
	       when SUM(so.orderqty) >= 70 then 'GOLD'
	       when SUM(so.orderqty) >= 40 then 'SILVER'
	       when SUM(so.orderqty) >= 20 then 'BRONZE'
	       else 'BASIC' end as customer_class
FROM Sales_Customer c
INNER JOIN Person_Person p ON c.personid = p.businessentityid
INNER JOIN Sales_SalesOrderHeader soh ON c.customerid = soh.customerid
INNER JOIN Sales_SalesOrderDetail so ON soh.salesorderid = so.salesorderid
WHERE DATE(orderdate) BETWEEN '2011-10-01' AND '2011-10-31' -- 2011-10 주문 
GROUP BY c.customerid, p.firstname, p.lastname
ORDER BY total_quantity desc;

나의 풀이와 다시 풀어본 풀이

내 풀이라고 적을게 없는게 뭔가 완성하지도 못했음...


느낀점

1번은 어떻게 할지 빨리 파악한것 같아서 차분히 데이터 뜯어보고 해도 되겠다 싶어서 했는데..
2번에서 그렇게 막힐 줄이야.. 그럴줄 알았으면 조금이라두 빨리 끝내고 2번이나 더 볼걸ㅠㅠ
너무 아쉬움만 남는다.

profile
SQL, Python, Code Kata

0개의 댓글