https://school.programmers.co.kr/learn/courses/30/lessons/151139
-- 코드를 입력하세요
SELECT
MONTH(rental.start_date) as MONTH,
rental.car_id as CAR_ID,
COUNT(MONTH(rental.start_date)) as RECORDS
FROM (
SELECT car_id
FROM car_rental_company_rental_history
WHERE start_date BETWEEN '2022-08-01' AND '2022-10-31'
GROUP BY car_id
HAVING COUNT(car_id) >= 5
) AS rental_gt_5
JOIN (
SELECT *
FROM car_rental_company_rental_history
WHERE start_date BETWEEN '2022-08-01' AND '2022-10-31'
) AS rental
ON rental_gt_5.car_id = rental.car_id
GROUP BY MONTH(rental.start_date), rental.car_id
ORDER BY MONTH, CAR_ID DESC;
저 기간 안에 대여 기록이 5번 이상인 것만 추려내고 조인을 해버리면 8월 이상 10월 이하가 아닌 tuple들도 같이 조인되기 때문이다.