Data Analyst KIM
[MySQL] 자동차 대여 기록 별 대여 금액 구하기(프로그래머스) 본문
반응형
WITH tab AS (
SELECT car.daily_fee
, car.car_type
, his.history_id
, DATEDIFF(END_DATE, START_DATE) + 1 AS period
, CASE WHEN DATEDIFF(END_DATE, START_DATE) + 1 >= 90 THEN '90일 이상'
WHEN DATEDIFF(END_DATE, START_DATE) + 1 >= 30 THEN '30일 이상'
WHEN DATEDIFF(END_DATE, START_DATE) + 1 >= 7 THEN '7일 이상'
ELSE 'NONE'
END AS duration_type
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY AS his
INNER JOIN CAR_RENTAL_COMPANY_CAR AS car ON car.car_id = his.car_id
WHERE car.car_type = '트럭')
SELECT tab.history_id
, ROUND(tab.daily_fee * tab.period * (100 - IFNULL(plan.discount_rate,0)) / 100) AS FEE
FROM tab
LEFT JOIN CAR_RENTAL_COMPANY_DISCOUNT_PLAN AS plan ON plan.duration_type = tab.duration_type
AND plan.car_type = tab.car_type
ORDER BY FEE DESC, tab.history_id DESC
반응형
'데이터 분석 > Coding Test' 카테고리의 다른 글
[Leetcode] 608. Tree Node (0) | 2023.11.09 |
---|---|
[Leetcode] 1393. Capital Gain/Loss (0) | 2023.11.09 |
[MySQL] 오프라인/온라인 판매 데이터 통합하기(프로그래머스) (0) | 2023.11.03 |
[MySQL] 그룹별 조건에 맞는 식당 목록 출력하기(프로그래머스) (0) | 2023.11.03 |
[MySQL] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기(프로그래머스) (0) | 2023.11.03 |