본문 바로가기
SQL문제

SQL 5주차 과제

by parkjongdi 2024. 7. 30.
728x90
반응형

음식 타입별, 연령별 주문건수 PIVOT VIEW 만들기

1. 음식 타입별, 연령별 주문건수 pivot view 만들기 (연령은 10~59세 사이)

  1. SQL 기본구조 작성하기
  2. Pivot view 를 만들기 위해 필요한 데이터 가공하기
  3. Pivot view 문법에 맞추어 수정하기

작성한 코드

select cuisine_type,

max(if(age_group = 10, cnt_orders,0)) "10",

max(if(age_group = 20, cnt_orders,0)) "20",

max(if(age_group = 30, cnt_orders,0)) "30",

max(if(age_group = 40, cnt_orders,0)) "40",

max(if(age_group = 50, cnt_orders,0)) "50"

FROM

(

SELECT f.cuisine_type,

case when age between 10 and 19 then 10

when age between 20 and 29 then 20

when age between 30 and 39 then 30

when age between 40 and 49 then 40

when age between 50 and 59 then 50 end age_group,

count(1) as cnt_orders

FROM food_orders f inner join customers c on f.customer_id = c.customer_id

where age between 10 and 59

group by cuisine_type, age_group

) a

group by cuisine_type

서브

food_orders, customers 조인, 연령이 10에서 59 사이인 고객들의 주문 수를 연령 그룹별로 계산

case문 사용 age 값을 열령 그룹으로

 

메인

서브 결과를 가져와 cuisine_type 별로 그룹화

각 요리에 대해 10대 20대 30대 40대 50대 그룹중 많은 주문 수 선택

 

728x90
반응형