
4주차 숙제를 풀고 있는데
제가 작성한 답과 정답코드의 차이점이 궁금합니다.
둘다 결과값은 동일하게 나오는 것을 확인했는데,
괄호 뒷부분 서브쿼리를 작성하는 이유가 궁금해요
작성한 코드 및 에러 메세지
<HW4 정답코드>
select restaurant_name,
case when price <=5000 then 'price_group1'
when price >5000 and price <=10000 then 'price_group2'
when price >10000 and price <=30000 then 'price_group3'
when price >30000 then 'price_group4' end price_group,
case when age <30 then 'age_group1'
when age between 30 and 39 then 'age_group2'
when age between 40 and 49 then 'age_group3'
else 'age_group4' end age_group
from
(
select a.restaurant_name,
avg(price) price,
avg(age) age
from food_orders a inner join customers b on a.customer_id=b.customer_id
group by 1
) t
order by 1
Tip 2) Ctrl+A(맥의 경우 Command+A) 단축키로 코드를 한 번에 선택할 수 있어요!
<제가 작성한 쿼리>
select f.restaurant_name ,
case when avg(f.price)<=5000 then 'price_1'
when avg(f.price)<=10000 then 'price_2'
when avg(f.price)<=30000 then 'price_3'
when avg(f.price)>30000 then 'price_4'
end "avg_price",
case when avg(c.age)<=29 then 'age_1'
when avg(c.age)<=39 then 'age_2'
when avg(c.age)<=49 then 'age_3'
when avg(c.age)>=50 then 'age_4'
end "avg_age"
from food_orders f inner join customers c on f.customer_id = c.customer_id
group by 1
order by 1
