2023. 11. 22. 02:27, 알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/157339
SELECT
C.CAR_ID,
C.CAR_TYPE,
ROUND(C.DAILY_FEE*30*(100-P.DISCOUNT_RATE)/100) AS FEE
FROM
CAR_RENTAL_COMPANY_CAR AS C
JOIN
CAR_RENTAL_COMPANY_RENTAL_HISTORY AS H ON C.CAR_ID = H.CAR_ID
JOIN
CAR_RENTAL_COMPANY_DISCOUNT_PLAN AS P ON C.CAR_TYPE = P.CAR_TYPE
WHERE
C.CAR_ID NOT IN(
SELECT CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE END_DATE > '2022-11-01' AND START_DATE <'2022-12-01'
)
AND P.DURATION_TYPE = '30일 이상'
GROUP BY
C.CAR_ID
HAVING
C.CAR_TYPE IN ('세단','SUV') AND (FEE >= 500000 AND FEE < 2000000)
ORDER BY
FEE DESC, CAR_TYPE, CAR_ID DESC;
잘 배워두어야 할 점은,
NOT IN ( )
형태와
IN ()
형태를 잘 이해하고 앞으로 요긴하게 잘 사용해야겠다.
그리고 주의해야할 점으로는,
(FEE>= 500000 AND FEE <2000000) OR (500000<= FEE AND FEE <2000000) 형태로는 작성할 수 있는데,
( 500000<= FEE < 2000000) 형태로는 작성해선 안된다. 전혀 다른 값이 나온다.
주의하도록 하자.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 LV 3. 59042 없어진 기록 찾기 MySQL (0) | 2023.11.22 |
---|---|
프로그래머스 LV 4. 131117 5월 식품들의 총매출 조회하기 MySQL (0) | 2023.11.22 |
프로그래머스 LV 4. 133027 주문량이 많은 아이스크림들 조회하기 MySQL (0) | 2023.11.21 |
프로그래머스 LV 1. 131528 나이 정보가 없는 회원 수 구하기 MySQL (0) | 2023.11.21 |
프로그래머스 LV 2. 59410 NULL 처리하기 MySQL (0) | 2023.11.21 |
Comments, Trackbacks