본문 바로가기
코딩테스트/SQL

[SQL Lv3] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기

by 박창준 2024. 11. 26.

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

댓글