[프로그래머스 | SQL] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기

게으른 완벽주의자·2023년 2월 8일
0

프로그래머스

목록 보기
56/83

프로그래머스_대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기

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

지금까지 푼 SQL 문제중에서 가장 어려웠던 것 같다
문제를 깊게 들여다보면 어떤 식의 구조를 써야하는지 감이 오는데, 처음에 그걸 잡는게 힘들어서 결국 다른 분들의 코드를 참고했다

대여 시작일을 기준으로 2022년 8월부터 2022년 10월까지 총 대여 횟수가 5회 이상인 자동차들에 대해서 -> 서브쿼리
해당 기간 동안의 월별 자동차 ID 별 총 대여 횟수 -> 서브쿼리 바깥의 메인 쿼리에도 2022.08~2022.10이라는 동일한 조건을 걸어줘야 한다, 월별 자동차별 이므로GROUP BY 조건을 2개 걸고, 대여 횟수이므로 COUNT 함수를 사용한다

특히 서브쿼리 쓰는 문제들이 익숙하질 않은 것 같다
서브쿼리 많이 쓰면서 연습해봐야겠다

profile
데이터를 공부하고 있습니다

0개의 댓글