할부는 몇 개월로 해드릴까요
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
'SolveSQL > 난이도 3' 카테고리의 다른 글
[SolveSQL/난이도 3] Advent of SQL 2024(MySQL, SQLite) (0) | 2024.12.29 |
---|---|
[SolveSQL/난이도 3] 데이터리안 SQL 데이터 분석 캠프 실전반(MySQL, SQLite) (0) | 2024.12.28 |