본문 바로가기

코딩테스트/SQL - 프로그래머스

SQL 고득점 kit(GROUP BY) - 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기

 

 

# 풀이 쿼리
SELECT EXTRACT(MONTH FROM 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'
    GROUP BY MONTH, CAR_ID
    HAVING 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
    )
    ORDER BY MONTH, CAR_ID DESC;

 

1. 22년 8월부터 10월까지 총 대여횟수가 5회 이상인 CAR_ID를 찾는다 => HAVING절

2. 해당 CAR_ID 중 조건에 해당하는 CAR_ID를 출력한다 => 그 외 쿼리