[MySQL] [프로그래머스 level 4] 자동차 대여 기록 별 대여 금액 구하기

2025. 10. 22. 20:19·SQL/프로그래머스

📌 문제링크

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

 

코딩테스트 연습 - 자동차 대여 기록 별 대여 금액 구하기

알고리즘 문제 연습 카카오톡 친구해요! 프로그래머스 교육 카카오 채널을 만들었어요. 여기를 눌러, 친구 추가를 해주세요. 신규 교육 과정 소식은 물론 다양한 이벤트 소식을 가장 먼저 알려

school.programmers.co.kr


📌 문제풀이

with

raw1 as (
    select a.car_id, a.car_type, a.daily_fee, b.history_id, daydiff,
        case
            when daydiff >= 90 then '90일 이상'
            when daydiff >= 30 then '30일 이상'
            when daydiff >= 7 then '7일 이상'
            else '이 외'
        end as duration
    from CAR_RENTAL_COMPANY_CAR a right join 
        (select history_id, car_id, (datediff(end_date,start_date)+1) as daydiff 
         from CAR_RENTAL_COMPANY_RENTAL_HISTORY) b on a.car_id=b.car_id
    where a.car_type = '트럭')

select history_id, 
    truncate(daydiff*daily_fee*(100-IFNULL(discount_rate, 0))/100, 0) as fee
from raw1 a left join CAR_RENTAL_COMPANY_DISCOUNT_PLAN b on a.duration=b.duration_type and b.car_type='트럭'
order by 2 desc, 1 desc

📖 NOTE

- datediff 함수는 시작일과 종료일의 차이를 계산할 때 종료일을 포함하지 않기 때문에, 실제 대여 기간(위 쿼리에서 daydiff 컬럼)을 정확히 구하기 위해서는 계산 결과에 1을 더해준다.

- 출력 조건에 맞게 정수부분만 출력하기 위해 truncate함수를 사용하여 소수점 아래 부분은 제거

저작자표시 (새창열림)

'SQL > 프로그래머스' 카테고리의 다른 글

[MySQL] [프로그래머스 level 4] 그룹별 조건에 맞는 식당 목록 출력하기  (0) 2025.10.30
[MySQL] [프로그래머스 level 4] 입양 시각 구하기(2)  (0) 2025.10.24
[MySQL] [프로그래머스 level 3] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기  (0) 2025.06.18
[MySQL] [프로그래머스 level 3] 업그레이드 할 수 없는 아이템 구하기  (0) 2025.06.17
[MySQL] [프로그래머스 level 3] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기  (2) 2025.06.14
'SQL/프로그래머스' 카테고리의 다른 글
  • [MySQL] [프로그래머스 level 4] 그룹별 조건에 맞는 식당 목록 출력하기
  • [MySQL] [프로그래머스 level 4] 입양 시각 구하기(2)
  • [MySQL] [프로그래머스 level 3] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기
  • [MySQL] [프로그래머스 level 3] 업그레이드 할 수 없는 아이템 구하기
ღ유닝이ღ
ღ유닝이ღ
🗃️이모저모 공부기록함🗃️
  • ღ유닝이ღ
    ღ yuni_world ღ
    ღ유닝이ღ
  • 전체
    오늘
    어제
    • 분류 전체보기 (102)
      • Python (8)
      • JAVA (0)
      • 알고리즘 (41)
        • 알고리즘 개념(이코테) (8)
        • 백준 (20)
        • 프로그래머스 (13)
      • SQL (44)
        • 프로그래머스 (39)
        • Tip (5)
      • Database (2)
      • AI (1)
      • 일상(자격증,어학 등) (6)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
ღ유닝이ღ
[MySQL] [프로그래머스 level 4] 자동차 대여 기록 별 대여 금액 구하기
상단으로

티스토리툴바