[지표] 카테고리 별 매출 비중

yozzum·2025년 2월 21일

SQL

목록 보기
27/36

[Input]

[Problem]
US E-Commerce Records 2020 데이터베이스는 미국 이커머스 웹사이트의 판매 데이터를 담고 있습니다. records 테이블에는 어느 온라인 쇼핑몰의 주문 데이터가 들어있고, 주문된 상품의 카테고리(category), 서브 카테고리(sub_category), 매출액(sales) 등의 정보가 있습니다.

서브 카테고리 별 매출액을 계산하고 그 매출액이 각 서브 카테고리가 속해있는 카테고리 안에서 비중을 얼마나 차지하는지, 그리고 전체 매출액에서는 비중을 얼마나 차지하는지 계산하는 쿼리를 작성해주세요. 쿼리 결과는 아래 컬럼을 포함해야 하고, 모든 수치 데이터는 소수점 아래 셋째 자리에서 반올림 해 둘째 자리까지 표현해주세요.

category - 카테고리 이름
sub_category - 서브 카테고리 이름
sales_sub_category - 서브 카테고리 별 매출액의 합계
sales_category - 카테고리 별 매출액의 합계
sales_total - 전체 매출액
pct_in_category - 카테고리 매출 중 해당 서브 카테고리 매출의 비율 (%)
pct_in_total - 전체 매출 중 해당 서브 카테고리 매출의 비율 (%)

[Output]

[Answer]

with base as (
  select category
        ,sub_category
        ,sum(sales) as sales_sub_category
  from records
  group by category, sub_category
)
select t.category
      ,t.sub_category
      ,round(t.sales_sub_category,2) as sales_sub_category
      ,round(t.sales_category,2) as sales_category
      ,round(t.sales_total,2) as sales_total
      ,round(t.sales_sub_category/t.sales_category*100,2) as pct_in_category
      ,round(t.sales_sub_category/t.sales_total*100,2) as pct_in_total
from (
  select category
        ,sub_category
        ,sales_sub_category
        ,sum(sales_sub_category) over (partition by category) as sales_category
        ,sum(sales_sub_category) over () as sales_total
  from base 
) t
profile
yozzum

0개의 댓글