Allen's 데이터 맛집
프로그래머스 lv. 3 : 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 본문
문제
풀이
-- 8, 9, 10월에 5회 이상 렌탈된 차량 조회
SELECT
EXTRACT(MONTH FROM 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 EXTRACT(MONTH FROM start_date) IN (8, 9, 10)
GROUP BY car_id
HAVING COUNT(car_id) >= 5
)
AND EXTRACT(MONTH FROM start_date) IN (8, 9, 10)
GROUP BY
month, car_id
ORDER BY
month, car_id DESC;
1. EXTRACT(MONTH FROM start_date)를 사용하여 각 렌탈의 시작일로부터 월을 추출합니다.
2. IN 절을 사용하여 8, 9, 10월 중에 5회 이상 렌탈된 차량의 car_id를 서브쿼리를 통해 선택합니다.
3. 본 쿼리에서도 8, 9, 10월 중에 해당하는 렌탈 기록만을 대상으로 합니다.
4. GROUP BY를 활용하여 월과 차량별로 그룹화하고, COUNT 함수를 통해 렌탈 횟수를 계산합니다.
5. 결과를 월과 차량 ID를 기준으로 정렬합니다.
https://school.programmers.co.kr/learn/courses/30/lessons/151139