본문 바로가기
Stay Hungry Stay Foolish/SQL

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

by HANNI하니 2023. 6. 20.

사용 언어 - MYSQL

프로그래머스 LV 3) 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

정답

WHERE ~ IN (SELECT절) (정답 맞춘 여부 X) 

1) WHERE CAR_ID IN ~~

WHERE DATE_FORMAT(START_DATE,"%Y-%m") BETWEEN '2022-08' AND '2022-10'

GROUP BY CAR_ID

HAVING COUNT(CAR_ID) >= 5

2) GROUP BY MONTH, CAR_ID로 그루핑

3) MONTH 오름차순, CAR_ID 내림차순 정렬

SELECT MONTH(START_DATE) AS MONTH, CAR_ID, COUNT(HISTORY_ID) AS RECORDS
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE CAR_ID IN (
        SELECT CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY 
        WHERE DATE_FORMAT(START_DATE,'%Y-%m') BETWEEN '2022-08' AND '2022-10'
        GROUP BY CAR_ID
        HAVING COUNT(CAR_ID) >= 5
    )
    AND DATE_FORMAT(START_DATE,'%Y-%m') BETWEEN '2022-08' AND '2022-10'
GROUP BY MONTH, CAR_ID 
ORDER BY MONTH ASC, CAR_ID DESC;

 

COUNT(열이름) = 총 대여 횟수가 0인 경우 결과에서 자동 제외

COUNT(*) = 총 대여 횟수가 0인 경우에도 출력

 

DATE_FORMAT 날짜형식

 

 

 

레퍼런스

  • 정답 깃허브
 

GitHub - yyeongeun/codingtest: 코딩테스트 공부

코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.

github.com

 

댓글