SELECT COUNT(DISTINCT BusinessEntityID) as customer_count
FROM Person_Person
WHERE EmailPromotion > 0 -- 0 = 이메일 프로모션을 받지 않음
AND PersonType = 'IN' -- IN = 개인(소매) 고객
Distinct 안적었넹.. ㅇㅅㅇ 그래도 답이 똑같아서 정답처리 됐나보다!! ☺️
... 뭔가 시간이 오~래 걸렸을것 같은 느낌? 뭔가 알듯말듯하네^^;;;
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번이나 더 볼걸ㅠㅠ
너무 아쉬움만 남는다.