문제
코드
WITH CAR AS (SELECT CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
HAVING MAX(END_DATE) < '2022-11-01' AND MAX(START_DATE) < '2022-11-01'),
DISCOUNT AS (SELECT CAR_TYPE, DISCOUNT_RATE
FROM CAR_RENTAL_COMPANY_DISCOUNT_PLAN
WHERE DURATION_TYPE = '30일 이상')
SELECT CAR.CAR_ID, C.CAR_TYPE, (CASE
WHEN C.CAR_TYPE = 'SUV' THEN FLOOR((C.DAILY_FEE*30)*(1- 0.01* DISCOUNT_RATE))
WHEN C.CAR_TYPE = '세단' THEN FLOOR((C.DAILY_FEE*30)*(1- 0.01* DISCOUNT_RATE))
END ) AS FEE
FROM CAR LEFT JOIN CAR_RENTAL_COMPANY_CAR C ON CAR.CAR_ID = C.CAR_ID
LEFT JOIN DISCOUNT D ON C.CAR_TYPE = D.CAR_TYPE
WHERE (C.CAR_TYPE = '세단' OR C.CAR_TYPE = 'SUV')
AND (CASE
WHEN C.CAR_TYPE = 'SUV' THEN (C.DAILY_FEE * 30) * (1 - 0.01 * COALESCE(DISCOUNT_RATE, 0))
WHEN C.CAR_TYPE = '세단' THEN (C.DAILY_FEE * 30) * (1 - 0.01 * COALESCE(DISCOUNT_RATE, 0))
END) BETWEEN 500000 AND 1999999
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/courses/30/lessons/157339
'코딩테스트연습 > SQL_프로그래머스' 카테고리의 다른 글
상품을 구매한 회원 비율 구하기 (0) | 2025.06.27 |
---|---|
언어별 개발자 분류하기 (0) | 2025.06.26 |
FrontEnd 개발자 찾기 (0) | 2025.06.24 |
자동차 대여 기록 별 대여 금액 구하기 (2) | 2025.06.23 |
특정 세대의 대장균 찾기 (0) | 2025.06.20 |