코딩테스트/SQL
[SQL Lv3] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기
박창준
2024. 11. 26. 12:04
https://school.programmers.co.kr/learn/courses/30/lessons/151139
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 해석
1. 2022년 8월부터 2022년 10월까지의 차량 대여 회수 구하기
2. 총 대여회수가 5회인 CAR_ID만 추출하기
문제 풀이
1. 2022년 8월부터 2022년 10월까지의 총 대여회수가 5회인 CAR_ID를 인라인 뷰에서 테이블로 추출
2. 해당 인라인뷰를 CAR_ID 와 INNER JOIN하여 연결
3. 그룹바이로 MONTH와 CAR_ID를 묶어서 월별, CAR_ID별로 집계
SELECT MONTH(A.START_DATE) AS MONTH, A.CAR_ID , COUNT(A.CAR_ID) AS 'RECORDS'
FROM
(
SELECT CAR_ID, COUNT(CAR_ID) AS 'COUNT'
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE START_DATE BETWEEN '2022-08-01' AND '2022-10-31'
GROUP BY CAR_ID
HAVING COUNT(CAR_ID) >= 5
ORDER BY CAR_ID
) AS B
INNER JOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY AS A
ON A.CAR_ID = B.CAR_ID
WHERE A.START_DATE BETWEEN '2022-08-01' AND '2022-10-31'
GROUP BY MONTH(A.START_DATE), A.CAR_ID
HAVING RECORDS >0
ORDER BY MONTH, A.CAR_ID DESC