프로그래머스 | LV.3 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (MySQL)

728x90

⬛ 프로그래머스 | LV.3 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (MySQL)

https://school.programmers.co.kr/learn/courses/30/lessons/151139

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명


💚문제 접근 방식

월별, CAR_ID 별 GOUP BY를 써야 했는데, 중첩 쿼리문을 작성하여 COUNT가 5이상인 애들의 CAR_ID를 먼저 뽑고 그 ID에 해당하는 ID에 대해서 그룹별 SELECT를 해야 하는 문제였다.

개인적으로 조금 까다롭게 느껴졌고 참고해서 풀었다.

💚 제출 코드

-- 코드를 입력하세요
SELECT MONTH(START_DATE) as MONTH, CAR_ID, COUNT(HISTORY_ID) 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(HISTORY_ID) > 4)
GROUP BY MONTH, CAR_ID
HAVING RECORDS > 0 
ORDER BY MONTH, CAR_ID DESC;           
728x90