[프로그래머스]특정 기간동안 대여 가능한 자동차들의 대여비용 구하기

김준석·2024년 1월 31일

코딩테스트 - SQL

목록 보기
39/96

문제

https://school.programmers.co.kr/learn/courses/30/lessons/157339

풀이

SELECT 
    cr.CAR_ID,
    cr.CAR_TYPE,
    ROUND(cr.DAILY_FEE*30*(100-crd.DISCOUNT_RATE)*0.01) AS FEE

FROM 
    CAR_RENTAL_COMPANY_CAR cr
        INNER JOIN CAR_RENTAL_COMPANY_DISCOUNT_PLAN crd
        ON cr.CAR_TYPE=crd.CAR_TYPE 

WHERE 1=1
    AND cr.CAR_TYPE IN('세단','SUV')
    AND crd.DURATION_TYPE = '30일 이상'
    AND cr.CAR_ID NOT IN (
        SELECT CAR_ID
        FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
        WHERE START_DATE <='2022-11-30' AND END_DATE >= '2022-11-01'
    )

HAVING
    FEE>=500000 AND FEE<2000000

ORDER BY
    FEE DESC,
    cr.CAR_TYPE,
    cr.CAR_ID DESC

풀이 후기

총 세가지 포인트가 있다.

  1. 자동차 종류가 세단 or SUV 인 자동차 중
  2. 2022년11월1일~2022년 11월30일 까지 대여 가능하고
  3. 30일간의 대여 금액이 50만원이상 200만원 미만인 자동차에대해

해당 포인트들에 대하여 하나하나 먼저 풀어보는 형식으로 했다.
특히 서브쿼리부분이 마음에 듦..!

0개의 댓글