사실 함수 하나하나 배울때마다 들었던 생각이
아 쉽네? ^^
이거였는데 막상 함수들 다 종합해서 활용하고 어떤 데이터를 뽑을때 어떤 함수를 사용해야 하고 구문을 만들지 생각하니 참으로 어렵다는 것을 느낀다.
그래도 몇회 반복하면 이해 더 될듯
학습목표: 조건문을 이용하여 다른 수식을 적용해보기
실습: 지역과 배달시간을 기반으로 배달수수료 구하기 (식당 이름, 주문 번호 함께 출력)
(지역 : 서울, 기타 - 서울일 때는 수수료 계산 * 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))
'내일배움캠프 AI 웹 프로그래밍' 카테고리의 다른 글
내일배움캠프 72일차_SQL 실습: User Segmentation & Subquery (0) | 2023.11.06 |
---|---|
내일배움캠프 71일차_여러번의 연산을 한 번의 SQL 문으로(Subquery) (0) | 2023.11.06 |
내일배움캠프 69일차_SQL로 User Segmentation (0) | 2023.11.06 |
내일배움캠프 68일차_SQL_IF, CASE 배우기 (0) | 2023.11.06 |
내일배움캠프 67일차_SQL 문자데이터 바꾸고 GROUP BY 사용 (0) | 2023.11.06 |