Allen's 데이터 맛집

프로그래머스 lv. 3 : 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 본문

SQL/SQL 문제풀이

프로그래머스 lv. 3 : 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기

Allen93 2024. 1. 30. 06:22

문제

 

 

풀이

-- 8, 9, 10월에 5회 이상 렌탈된 차량 조회
SELECT
    EXTRACT(MONTH FROM start_date) AS month,
    car_id,
    COUNT(car_id) AS RECORDS
FROM
    CAR_RENTAL_COMPANY_RENTAL_HISTORY 
WHERE
    car_id IN (
        SELECT car_id 
        FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
        WHERE EXTRACT(MONTH FROM start_date) IN (8, 9, 10)
        GROUP BY car_id
        HAVING COUNT(car_id) >= 5
    )
    AND EXTRACT(MONTH FROM start_date) IN (8, 9, 10)
GROUP BY 
    month, car_id
ORDER BY
    month, car_id DESC;

 

1. EXTRACT(MONTH FROM start_date)를 사용하여 각 렌탈의 시작일로부터 월을 추출합니다.


2. IN 절을 사용하여 8, 9, 10월 중에 5회 이상 렌탈된 차량의 car_id를 서브쿼리를 통해 선택합니다.


3. 본 쿼리에서도 8, 9, 10월 중에 해당하는 렌탈 기록만을 대상으로 합니다.


4. GROUP BY를 활용하여 월과 차량별로 그룹화하고, COUNT 함수를 통해 렌탈 횟수를 계산합니다.


5. 결과를 월과 차량 ID를 기준으로 정렬합니다.

 

 

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr