MySQL 실습 | 자동차 대여 기록 별 대여 금액 구하기

2025. 1. 13. 17:22·SQL

`복습하기★★`

문제 1.  자동차 대여 기록 별 대여 금액 구하기

CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '트럭'인 자동차의 대여 기록에 대해서 대여 기록 별로 대여 금액(컬럼명: FEE)을 구하여 대여 기록 ID와 대여 금액 리스트를 출력하는 SQL문을 작성해주세요. 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 대여 기록 ID를 기준으로 내림차순 정렬해주세요.

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


💡 문제 풀이 

`내 풀이`

SELECT distinct HISTORY_ID,
    ROUND(DAILY_FEE * (DATEDIFF(END_DATE,START_DATE)+1) * 
        (CASE 
            WHEN (DATEDIFF(END_DATE,START_DATE)+1) >= 90 THEN (SELECT (1 - DISCOUNT_RATE/100) FROM CAR_RENTAL_COMPANY_DISCOUNT_PLAN WHERE CAR_TYPE = '트럭' AND DURATION_TYPE = '90일 이상')
            WHEN (DATEDIFF(END_DATE,START_DATE)+1) >= 30 THEN (SELECT (1 - DISCOUNT_RATE/100) FROM CAR_RENTAL_COMPANY_DISCOUNT_PLAN WHERE CAR_TYPE = '트럭' AND DURATION_TYPE = '30일 이상')
            WHEN (DATEDIFF(END_DATE,START_DATE)+1) >= 7 THEN (SELECT (1 - DISCOUNT_RATE/100) FROM CAR_RENTAL_COMPANY_DISCOUNT_PLAN WHERE CAR_TYPE = '트럭' AND DURATION_TYPE = '7일 이상')
            ELSE 1-0 
         END),0)
    AS FEE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
LEFT JOIN CAR_RENTAL_COMPANY_CAR USING(CAR_ID)
WHERE CAR_TYPE = '트럭'
ORDER BY 2 DESC, 1 DESC;

 

`오답노트`

  • 하드코딩 안 하고 풀고 싶어서 정~말 많은 시도를 한 끝에 풀었다
  • CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블을 조인으로 가져오지 않고 CASE문에서 SELECT로 가져옴 
  • 다른 사람 풀이 보다가 알았는데 JOIN할 때 양쪽 테이블의 컬럼이 같으면 ON 대신 USING으로 간단하게 쓸 수 있다
 

[oracle] USING - JOIN 사용시 조인 조건을 간단히

1. USING - 역할두 개의 테이블이 내부 조인으로 조인 될 때 조인하고자 하는 두 테이블의 컬럼명이 같을 경우 조인 조건을 길게 적지 않고 간단하게 적을 수 있도록 하는 역할 2. USING - 기본 테이블

devjhs.tistory.com

 

'SQL' 카테고리의 다른 글
  • MySQL 실습 | Recyclable and Low Fat Products
  • MySQL 실습 | 상품을 구매한 회원 비율 구하기
  • MySQL 실습 | 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기
  • MySQL 실습 | 입양 시각 구하기 (재귀구조 with recursive)
초담
초담
4년차 마케터입니다
  • 초담
    그로스마케터의 기록
    초담
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (117)
      • Data Analytics Project (3)
      • SQL (55)
      • Python (43)
      • GA4 (0)
      • Tableau (8)
      • 아티클 스터디 (7)
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
초담
MySQL 실습 | 자동차 대여 기록 별 대여 금액 구하기
상단으로

티스토리툴바