Today I Learned
[내일배움캠프_데이터분석] 7주차 금요일 TIL _ SQL 문제해결
journal201
2024. 8. 9. 19:57
A. 금일 학습 내용
- 작일 풀지 못한 SQL 문제를 풀었다.
- 동일한 차가 여러 번 대여되었을 가능성을 고려하지 않았다.
- 이를 피하기 위해 서브쿼리를 사용하여 조건에 맞는 기간을 지정하였다.
SELECT
C.CAR_ID,
C.CAR_TYPE,
FLOOR((C.DAILY_FEE * (1 - P.DISCOUNT_RATE / 100)) * 30) AS FEE
FROM
CAR_RENTAL_COMPANY_CAR C
JOIN
CAR_RENTAL_COMPANY_DISCOUNT_PLAN P ON C.CAR_TYPE = P.CAR_TYPE
WHERE
C.CAR_TYPE IN ('세단', 'SUV')
AND P.DURATION_TYPE = '30일 이상'
AND NOT EXISTS (
SELECT CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY H
WHERE H.CAR_ID = C.CAR_ID
AND (
(H.START_DATE <= '2022-11-30' AND H.END_DATE >= '2022-11-01')
)
)
HAVING
FEE >= 500000 AND FEE < 2000000
ORDER BY
FEE DESC,
C.CAR_TYPE ASC,
C.CAR_ID DESC
- CAR_ID 가 중복되어 출력되는 것은 왜 해결되었는지 모르겠다.
B. 마무리
- 논리적 흐름을 완전히 파악하고 코드를 작성한 것이 아니라 마무리가 찝찝하다.
- 문제가 풀렸다고 넘어가지 말고 이 부분은 꼭 여쭈어야겠다.