출력해야 되는 값은 MONTH, CAR_ID, RECORDS이다.
MONTH() 함수를 이용하여 START_DATE에서 월을 분리해냈고, MOTNH와 CAR_ID를 GROUP BY를 사용하여 그룹화 하였다.
조건에서 8~10월 사이에 대여를 하였고 대여횟수가 5회 이상이어야 하므로 WHERE절에서 조건 2가지를 작성 해야한다.
대여횟수가 5회 이상인 CAR_ID를 찾기 위하여 서브쿼리를 사용하여 찾아낼 수 있었다.
마지막으로 대여 횟수가 0인 경우에는 결과에서 제외해야 되므로 RECORDS가 0 이상인 것만 출력하도록 하였다.
SELECT MONTH(START_DATE) AS MONTH, CAR_ID, COUNT(HISTORY_ID) AS RECORDS
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE MONTH(START_DATE) BETWEEN 8 AND 10
AND CAR_ID IN (SELECT CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE MONTH(START_DATE) BETWEEN 8 AND 10
GROUP BY CAR_ID
HAVING COUNT(CAR_ID) >= 5
)
GROUP BY MONTH, CAR_ID
HAVING RECORDS > 0
ORDER BY MONTH ASC, CAR_ID DESC;
깔끔한 풀이네요 잘 보고 갑니다~