1. 문제 풀이 아이디어
- 서브 쿼리를 활용하여 2022년 8월~10월 동안 5회 이상 대여된 차량만 선택하여, 월별(
MONTH(start_date)
) 및 차량별(car_id
) 대여 횟수를 구한다.
2. 나의 정답 코드
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
ORDER BY
month, car_id DESC;
3. 정리
WHERE start_date BETWEEN '2022-08-01' AND '2022-10-31'
는 8월~10월 사이에 대여된 데이터만 선택한다.
AND car_id IN (...)
는 해당 기간 동안 총 5회 이상 대여된 차량만 필터링한다.
GROUP BY month, car_id
는 월별(MONTH(start_date)
) 및 차량별(car_id
)로 그룹화하여 대여 횟수를 집계한다.
ORDER BY month, car_id DESC
는 월별 오름차순, 같은 달 내에서는car_id
내림차순 정렬한다.
Share article