커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
4주차 숙제 문의
엑셀보다 쉽고 빠른 SQL
4주차
북마크
백*린
댓글
1
추천
0
조회수
28
조회수
28
답변 완료

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
취소
 공유
취소
댓글 0
댓글 알림
나의얼굴