SQL

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

창따오 2024. 1. 9. 11:16
728x90

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

 

프로그래머스

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

programmers.co.kr

결과 예시

 

-- 코드를 입력하세요
SELECT MONTH(START_DATE) AS 'MONTH', CAR_ID, COUNT(*) AS RECORDS
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE START_DATE BETWEEN '2022-08-01' AND '2022-10-31'
AND 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(*)>=5)
GROUP BY MONTH, CAR_ID
HAVING RECORDS > 0
ORDER BY MONTH, CAR_ID DESC;

 

서브쿼리도 사용해야하고 group by, having 절까지 사용해야 원하는 결과를 도출 할 수 있다.

일단 Where절에서 8월부터 10월까지 차 대여가 5번이상인 자동차의 데이터만 필터링하는 것이 핵심이다.

그 후, 추출된 데이터를 가지고 최종적으로 원하는 결과인 월별, 자동차_ID별로 그룹화하여 records의 값을 count해주는 것이다.