📜 문제 설명
US E-Commerce Records 2020 데이터셋은 미국 이커머스 웹사이트의 판매 데이터 입니다. records 테이블은 주문 번호, 주문 날짜, 주문 지역, 카테고리 등 주문의 상세 정보를 담고 있습니다. 이 데이터를 이용하여 미국의 각 지역별로 어떤 카테고리의 상품이 많이 판매되는지 알아보려고 합니다. region, category 별 주문량을 계산해 출력하는 쿼리를 작성해주세요.
결과 데이터 형식
결과 데이터는 아래와 같은 테이블 형태로 출력되어야 하고, Region 컬럼 기준 오름차순으로 정렬되어 있어야 합니다.
RegionFurnitureOffice SuppliesTechnology
REGION | Furniture | Office Supplies | Technology |
Central | |||
East | |||
South | |||
West |
결과 데이터의 각 컬럼은 다음과 같은 의미를 갖습니다.
- Region - 주문 지역
- Furniture - 해당 지역 내 가구(’Furniture’) 주문 수
- Office Supplies - 해당 지역 내 오피스 물품(’Office Supplies’) 주문 수
- Technology - 해당 지역 내 전자기기(’Technology’) 주문 수
records 테이블
- date | order_date 주문 날짜
- string | order_id 주문 ID
- string | ship_mode 배송 타입
- string | customer_id 고객 ID
- string | segment 고객 타입
- string | country 국가
- string | city 도시
- string | state 주
- integer | postal_code 우편번호
- string | region 지역
- string | product_id 상품 ID
- string | category 카테고리
- string | sub_category 서브 카테고리
- string | product_name 상품명
- number | sales 매출
- integer | quantity 수량
- number | discount 할인
- number | profit 이익
❓ 문제
미국의 각 지역별로 어떤 카테고리의 상품이 많이 판매되는지 알아보려고 합니다.
지역별로 판매된 가구의 타입을 아래 카테고리로 세분화해 출력해주세요
- Furniture - 해당 지역 내 가구(’Furniture’) 주문 수
- Office Supplies - 해당 지역 내 오피스 물품(’Office Supplies’) 주문 수
- Technology - 해당 지역 내 전자기기(’Technology’) 주문 수
🔗 문제 링크
https://solvesql.com/problems/characteristics-of-orders/
💡 문제 풀이
지역을 조회하고 category가 각 구분에 해당하는 가구들의 판매 수량을 세고 그룹화해서 출력함
SELECT
region AS "Region",
SUM(
DISTINCT (
CASE
WHEN category = "Furniture" THEN cnt
END
)
) AS "Furniture",
SUM(
DISTINCT (
CASE
WHEN category = "Office Supplies" THEN cnt
END
)
) AS "Office Supplies",
SUM(
DISTINCT (
CASE
WHEN category = "Technology" THEN cnt
END
)
) AS "Technology"
FROM
(
SELECT
region,
category,
COUNT(DISTINCT (order_id)) AS cnt
FROM
records
GROUP BY
region,
category
ORDER BY
region
)
GROUP BY
region
ORDER by
region
반응형
'✨APS (Algorithm Problem Solving) > SolveSQL' 카테고리의 다른 글
[solvesql] 레스토랑의 요일별 VIP / SQLite (0) | 2022.12.21 |
---|---|
[solvesql] 버뮤다 삼각지대에 들어가버린 택배 / SQLite (0) | 2022.12.20 |
[solvesql] 점검이 필요한 자전거 찾기 / SQLite (0) | 2022.12.06 |
[solvesql] 배송 예정일 예측 성공과 실패 / SQLite (0) | 2022.12.06 |
[solvesql] 할부는 몇 개월로 해드릴까요 / SQLite (2) | 2022.11.25 |