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

2024. 5. 4. 14:21코딩 테스트

문제

 

 

 

 

개념
  • BETWEEN a AND b : a와 b 사이의 수
  • WHRER 컬럼명 IN (쿼리문)
    • 쿼리문 조건에 해당하는 컬럼의 값들을 추출하고 싶을 때 사용한다.
    • 쿼리문의 컬럼과 WHERE절 뒤에 컬럼이 같아야 한다.

 

 

정답
SELECT MONTH(START_DATE) MONTH, CAR_ID, COUNT(*) 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 1
    HAVING COUNT(*) >= 5
)
GROUP BY 1, 2
HAVING RECORDS > 0
ORDER BY 1, 2 DESC