[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.