[프로그래머스] - 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기

BinaryHyeok·2023년 10월 21일
1

SQL

목록 보기
4/4

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

Solution

출력해야 되는 값은 MONTH, CAR_ID, RECORDS이다.
MONTH() 함수를 이용하여 START_DATE에서 월을 분리해냈고, MOTNH와 CAR_ID를 GROUP BY를 사용하여 그룹화 하였다.
조건에서 8~10월 사이에 대여를 하였고 대여횟수가 5회 이상이어야 하므로 WHERE절에서 조건 2가지를 작성 해야한다.

  1. MONTH가 8월에서 10월사이일것
  2. 8월에서 10월사이의 총 대여 횟수가 5회 이상일 것

대여횟수가 5회 이상인 CAR_ID를 찾기 위하여 서브쿼리를 사용하여 찾아낼 수 있었다.
마지막으로 대여 횟수가 0인 경우에는 결과에서 제외해야 되므로 RECORDS가 0 이상인 것만 출력하도록 하였다.

SELECT MONTH(START_DATE) AS MONTH, CAR_ID, COUNT(HISTORY_ID) AS RECORDS
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE MONTH(START_DATE) BETWEEN 8 AND 10
AND CAR_ID IN (SELECT CAR_ID
               FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
               WHERE MONTH(START_DATE) BETWEEN 8 AND 10
               GROUP BY CAR_ID
               HAVING COUNT(CAR_ID) >= 5
              )
GROUP BY MONTH, CAR_ID
HAVING RECORDS > 0
ORDER BY MONTH ASC, CAR_ID DESC;

1개의 댓글

comment-user-thumbnail
2023년 10월 23일

깔끔한 풀이네요 잘 보고 갑니다~

답글 달기