SQL/GROUP BY
[프로그래머스 SQL] Lv.3 - 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기
이런개발
2025. 3. 26. 17:19
https://school.programmers.co.kr/learn/courses/30/lessons/151139
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 풀이
- 서브 쿼리를 이용해 대여 시작일이 2022년 8월 ~ 2022년 10월인 행들을 자동차 ID를 기준으로 그룹핑했을 때 그룹 수가 5개 이상인 자동차 ID에 해당하는 행을 필터링한다.
- 월과 자동차 ID를 기준으로 그룹핑한다.
- 월을 기준으로 오름차순 정렬하고, 자동차 ID를 기준으로 내림차순 정렬한다.
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-10-31'
GROUP BY CAR_ID
HAVING COUNT(*) >= 5
)
AND
START_DATE BETWEEN '2022-08-01' AND '2022-10-31'
GROUP BY
1, 2
ORDER BY
1, 2 DESC