개발일기 [Python 파이썬]

[SQL] Subquery 문 안을 수정해서, 음식 주문시간이 25분보다 초과한 시간을 가져오기 4/5

neullo 2024. 4. 22. 23:23

1. 문자변경과 조건문

  • 👉 문자 변경
    1. REPLACE : 지정한 문자를 다른 문자로 변경
    2. SUBSTRING : 특정 문자만 추출
    3. CONCAT : 여러 문자를 합하여 포맷팅 
    👉 조건문
    1. IF : if(조건, 조건을 충족할 때, 조건을 충족하지 못할 때)
    2. CASE WHEN END : case when 조건1 then 값(수식)1 when 조건2 then 값(수식)2 else 값(수식)3 end 

2. Subquery 문의 기본 구조

select column1, special_column
from
    ( /* subquery */
    select column1, column2 special_column
    from table1
    ) a
select column1, column2
from table1
where column1 = (select col1 from table2)

 

 

     👉 Subquery 가 필요한 경우

    • 여러번의 연산을 수행해야 할 때
    • 조건문에 연산 결과를 사용해야 할 때
    • 조건에 Query 결과를 사용하고 싶을 때

즉 30대 이상이 주문한 결과만 조회하고 싶을 때 OR 음식 타입별 평균 음식 주문금액 따라 음식비 상/중/하 를 나누고 싶을 때 OR 가중치를 적용한 결과로 최종 예상 배달비를 계산할 때 사용

 

만약, Subquery 문 안을 수정해서, 음식 주문시간이 25분보다 초과한 시간을 가져오고 싶다면?

select order_id, restaurant_name, if(over_time>=0, over_time, 0) over_time
from 
(
select order_id, restaurant_name, food_preparation_time-25 over_time
from food_orders
) a