[Programmers] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 - 157339
[Programmers] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 - 157339
문제
풀이
코드
sql WITH cars_with_fee AS ( SELECT c.car_id, c.car_type, FLOOR(c.daily_fee * 30 * (100 - p.discount_rate) / 100) AS fee FROM car_rental_company_car AS c JOIN car_rental_company_discount_plan AS p ON c.car_type = p.car_type WHERE c.car_type IN ('세단', 'SUV') AND p.duration_type = '30일 이상' ) SELECT car_id, car_type, fee FROM cars_with_fee WHERE car_id NOT IN ( SELECT car_id FROM car_rental_company_rental_history WHERE end_date >= '2022-11-01' AND start_date <= '2022-11-30' ) AND fee >= 500000 AND fee < 2000000 ORDER BY fee DESC, car_type ASC, car_id DESC;
설명
이 문제는 SQL을 활용한 데이터 조회 문제다.
접근 방법
문제의 요구사항을 분석하여 적절한 SQL 쿼리를 작성했다.
주요 포인트
- 필요한 테이블 JOIN
- WHERE 조건절을 통한 데이터 필터링
- ORDER BY를 통한 정렬
시간 복잡도
데이터베이스 인덱스와 쿼리 최적화에 따라 성능이 결정된다.
This post is licensed under CC BY 4.0 by the author.