커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
내림차순이 적용되지 않습니다. +실습하며 생긴 자잘한 궁금증
엑셀보다 쉽고 빠른 SQL v0
4주차
북마크
박*주
댓글
11
추천
1
조회수
31
조회수
31
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


4주차 실습입니다.


  • [실습] 50세 이상 고객의 연령에 따라 경로 할인율을 적용하고, 음식 타입별로 원래 가격과 할인 적용 가격 합을 구하기
  • (조회 컬럼 : 음식 타입, 원래 가격, 할인 적용 가격, 할인 가격) 할인 : 나이-500.005
  • 고객 정보가 없는 경우도 포함하여 조회, 할인 금액이 큰 순서대로 정렬



----------------------[이게 정답입니다]

select cuisine_type,

    sum(price) "원래 가격",

    sum(price)-sum(discount_price) "할인 적용 가격",

    sum(discount_price) "할인 가격" 

from 

(

select a.cuisine_type,

    price,

    price*((b.age-50)*0.005) discount_price

from food_orders a inner join customers b on a.customer_id=b.customer_id

where b.age>=50

) t

group by 1

order by 4 desc

-----------------------------



답을 보니, 저는 할인가격을 다르게 이해하고 풀었던것 같아요.

  1. 이렇게 풀어도 될까요..? 제가 할인가격을 맞게 이해한게 맞나요?
  2. sum-sum을 하지 않고 sum(00-00)을 해도 괜찮은가요?
  3. 내림차순이 적용되지 않습니다.



보고 계신 화면

스파르타 즉문즉답

전체를 캡처해 주시면, 튜터님들이 빠르게 상황을 이해할 수 있어요.







----------------실습하며 생긴 자잘한 궁금증입니다.

스파르타 즉문즉답



  • concat, case when 할 때, 위에서 select 시 별명으로 지어준 컬럼명 넣으면 안되고

원래 데이터베이스 컬럼명을 넣어줘야 합니다. 이유가 무엇인가요???


  • 서브쿼리할 때 왜 뒤에있는 별명을 지어줘야하나요?
  • 서브쿼리할 때, 맨 위 select 에 있는 컬럼명.

왜 join 해줄 때 앞에 있는 테이블의 컬럼이라면 a.ooo 이렇게 안써도 되나요?

스파르타 즉문즉답

예를 들면 두번째줄에 a.price를 하지 않아도 되는 이유입니다!






취소
 공유
취소
댓글 0
댓글 알림
나의얼굴