본문 바로가기
내일배움캠프 AI 웹 프로그래밍

내일배움캠프 70일차_SQL 실습이 곧 성과를 나타낸다

by thriveview 2023. 11. 6.

사실 함수 하나하나 배울때마다 들었던 생각이

아 쉽네? ^^ 

이거였는데 막상 함수들 다 종합해서 활용하고 어떤 데이터를 뽑을때 어떤 함수를 사용해야 하고 구문을 만들지 생각하니 참으로 어렵다는 것을 느낀다. 

그래도 몇회 반복하면 이해 더 될듯

 

 

학습목표: 조건문을 이용하여 다른 수식을 적용해보기

 

실습: 지역과 배달시간을 기반으로 배달수수료 구하기 (식당 이름, 주문 번호 함께 출력)

(지역 : 서울, 기타 - 서울일 때는 수수료 계산 * 1.1, 기타일 때는 곱하는 값 없음 시간 : 25분, 30분 - 25분 초과하면 음식 가격의 5%, 30분 초과하면 음식 가격의 10%)

 

select restaurant_name,
       order_id,
       delivery_time,
       price,
       addr,
       case when delivery_time>25 and delivery_time<=30 then price*1.05*(if(addr like '%서울%', 1.1, 1))
            when delivery_time>30 then price*1.1*(if(addr like '%서울%', 1.1, 1))
            else 0 end "수수료"
from food_orders

 

실습: 주문 시기와 음식 수를 기반으로 배달할증료 구하기

(주문 시기 : 평일 기본료 = 3000 / 주말 기본료 = 3500 음식 수 : 3개 이하이면 할증 없음 / 3개 초과이면 기본료 * 1.2)

 

select order_id,
       price,
       quantity,
       day_of_the_week,
       if(day_of_the_week='Weekday', 3000, 3500)*(if(quantity<=3, 1, 1.2)) "할증료"
from food_orders

 

 

참고로 오류 나타났을때 확인해야할 사항.

#문자, 숫자를 혼합하여 함수에 사용 할 때에는 데이터 타입을 변경해주어야함

--숫자로 변경
cast(if(rating='Not given', '1', rating) as decimal) 

--문자로 변경
concat(restaurant_name, '-', cast(order_id as char))