Post

[Programmers] #151139 - 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 [MySQL]

[Programmers] #151139 - 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 [MySQL]

문제 링크


1. 아이디어

2022년 8월부터 10월까지 대여 횟수가 총 5회 이상인 자동차의 월별 대여 횟수를 월 오름차순, 같은 월이면 CAR_ID 내림차순으로 조회하는 문제다. 5회 이상은 세 달을 합친 횟수라 월별 집계만으로는 걸러낼 수 없어, HAVING COUNT(*) >= 5로 자동차를 먼저 추린 서브쿼리를 IN에 넣었다. 바깥 쿼리에도 같은 날짜 범위를 걸어 8월부터 10월까지의 기록만 월별로 셌다.


2. 쿼리

풀이 [MySQL]

1
2
3
4
5
6
7
8
9
10
11
12
SELECT MONTH(START_DATE) AS MONTH, CAR_ID, COUNT(*) AS RECORDS
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE START_DATE >= '2022-08-01' AND START_DATE < '2022-11-01' AND
    CAR_ID IN (
        SELECT CAR_ID
        FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
        WHERE START_DATE >= '2022-08-01' AND START_DATE < '2022-11-01'
        GROUP BY CAR_ID
        HAVING COUNT(*) >= 5
    )
GROUP BY MONTH, CAR_ID
ORDER BY MONTH, CAR_ID DESC

This post is licensed under CC BY 4.0 by the author.