4주차 과제
문제 : 식당별 평균 음식 주문 금액과 주문자의 평균 연령을 기반으로 Segmentation 하기
- 평균 음식 주문 금액 기준 : 5,000 / 10,000 / 30,000 / 30,000 초과
- 평균 연령 : ~ 20대 / 30대 / 40대 / 50대 이상
- 두 테이블 모두에 데이터가 있는 경우만 조회, 식당 이름 순으로 오름차순 정렬
select restaurant_name,
case when avg_price <= 5000 then 'price_group1'
when avg_price > 5000 and avg_price <= 10000 then 'price_group2'
when avg_price > 10000 and avg_price <= 30000 then 'price_group3'
when avg_price > 30000 then 'price_group4' end price_group,
case when avg_age < 30 then 'age_group1'
when avg_age >= 30 and avg_age < 40 then 'age_group2'
when avg_age >= 40 and avg_age < 50 then 'age_group3'
when avg_age >= 50 then 'age_group4' end age_group
from
(
select f.restaurant_name,
avg(price) avg_price,
avg(age) avg_age
from food_orders f inner join customers c on f.customer_id = c.customer_id
group by 1
) a
order by 1
먼저 서브쿼리부터 작성.
양쪽 테이블에 모두 있을 때만 조회이므로 inner join.
조건이 식당별이므로 group by 1, 음식 금액과 평균 연령을 조회한다.
이후 금액 기준, 연령 기준에 맞춰 segmentation해주면 끝.
오늘의 회고
우선 SQL 진도는 목표까지 완료했다.
내일 모의 기술면접이 있어서 공부하는중. 아마 정규시간이 끝나더라도 더 해야할 것 같다.
내일의 목표는 기술면접 준비하고 잘 하기, SQL 5주차 완강하기
'매일 TIL' 카테고리의 다른 글
[내일배움캠프 7-4일] 파이썬 장고 실무 기초 (0) | 2024.08.08 |
---|---|
[내일배움캠프 7-3일] SQL 5주차, 기술면접 피드백 (0) | 2024.08.07 |
[내일배움캠프 7-1일] 피보나치 수, SQL 3주차 (0) | 2024.08.05 |
[내일배움캠프 6-5일] 최댓값과 최솟값, SQL 2주차 (0) | 2024.08.02 |
[내일배움캠프 6-4일] 신고 결과 받기, SQL 1주차 (0) | 2024.08.01 |