SQL 문제

문제 69. 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기(난이도 10)

kagan-draca 2024. 8. 1. 17:20

 

문제를 보고 2022년 8월 01일 ~ 2022년 10월 31일 까지 총 5회 대여된

CAR_ID 부터 구해야 한다는 생각을 했다.

 

    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

 

그렇게 구해진 CAR_ID를

MONTH와 CAR_ID로 GROUP을 만들어

그룹 테이블을 만들어줬다.

 

이후,

 

SELECT ~~~~, COUNT(CAR_ID) AS RECORDS

로 그룹 테이블의 개수를 출력해 

월 별 대여 회수를 출력해줬다.

 

제출한 코드 : 

 

SELECT MONTH(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 START_DATE BETWEEN '2022-08-01' AND '2022-10-31'
    GROUP BY CAR_ID
    HAVING COUNT(CAR_ID) >= 5
) && START_DATE BETWEEN '2022-08-01' AND '2022-10-31'
GROUP BY MONTH, CAR_ID
ORDER BY MONTH ASC, CAR_ID DESC