SolveSQL/난이도 3

[SolveSQL/난이도 3] 데이터리안 SQL 데이터 분석 캠프 입문반(MySQL, SQLite)

보단잉 2024. 12. 28. 04:32

할부는 몇 개월로 해드릴까요

SELECT payment_installments
, COUNT(DISTINCT(order_id)) AS `order_count`
, MIN(payment_value) AS `min_value`
, MAX(payment_value) AS `max_value`
, AVG(payment_value) AS `avg_value` FROM olist_order_payments_dataset
WHERE payment_type LIKE '%credit_card%'
GROUP BY payment_installments

 

지역별 주문의 특징

같은 사람이 여러 번 주문하는 경우가 있어서 WHEN절에서 order_id를 가져오고 DISTINCT로 중복 제거한 후 order_id의 개수를 셈으로써 각 카테고리별 판매량을 계산한다.

SELECT region AS `Region`
, COUNT(DISTINCT(CASE WHEN category LIKE '%Furniture%' THEN order_id END)) AS `Furniture`
, COUNT(DISTINCT(CASE WHEN category LIKE '%Office Supplies%' THEN order_id END)) AS `Office Supplies`
, COUNT(DISTINCT(CASE WHEN category LIKE '%Technology%' THEN order_id END)) AS `Technology`
FROM records
GROUP BY region
ORDER BY region ASC