새소식

Algorithm/Programmers

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

  • -
728x90

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

157339, 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기

📌 난이도 : LEVEL 4

 

 

🧩 프로세스

📚 요구사항 

1. 2022년 11월 1일부터 30일까지 대여가능한

2. 자동차의 종류가 세단 또는 SUV

3. 30일간 대여금액이 50만원 ~ 200만원인

4. 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 자동차 종류를 기준으로 오름차순 정렬, 자동차 종류까지 같은 경우 자동차 ID를 기준으로 내림차순 정렬

 

✅ 전체 코드

SELECT
    CRCR.CAR_ID,
    CRCR.CAR_TYPE,
    ROUND(CRCR.DAILY_FEE * 30 * (100 - CRCDP.DISCOUNT_RATE) / 100, 0) AS FEE
FROM
    CAR_RENTAL_COMPANY_CAR AS CRCR
INNER JOIN
    CAR_RENTAL_COMPANY_DISCOUNT_PLAN AS CRCDP
ON
    CRCR.CAR_TYPE = CRCDP.CAR_TYPE
WHERE
    CRCR.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
(
    CRCR.CAR_TYPE = '세단'
    OR
    CRCR.CAR_TYPE = 'SUV'
)
AND
    CRCDP.DURATION_TYPE = '30일 이상'
GROUP BY
    CRCR.CAR_ID
HAVING
    FEE BETWEEN 500000 AND 1999999
ORDER BY
    FEE DESC,
    CAR_TYPE ASC,
    CAR_ID DESC

: WHERE 절에 서브쿼리를 생성하여 해당 기간을 제외한 CAR_ID 조회해서 예외처리를 진행하였다.

728x90
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.