https://school.programmers.co.kr/learn/courses/30/lessons/151139
풀이 - 나의 생각
먼저 8~10월 총 대여 횟수가 5회 이상인 CAR_ID를 찾아낸 후
JOIN한다.
그 후에 GROUP BY로 달 별, CAR_ID 별로 묶어서
그 숫자를 센다.
코드
SELECT MONTH(START_DATE) MONTH, C.CAR_ID, COUNT(*) RECORDS
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY C
JOIN (
SELECT CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE MONTH(START_DATE) IN (8, 9, 10)
GROUP BY CAR_ID
HAVING COUNT(HISTORY_ID) >= 5) SUB ON C.CAR_ID = SUB.CAR_ID
WHERE MONTH(START_DATE) IN (8, 9, 10)
GROUP BY MONTH, C.CAR_ID
HAVING COUNT(*) >= 1
ORDER BY MONTH, C.CAR_ID DESC;
728x90
'프로그래머스 > MySQL' 카테고리의 다른 글
코딩테스트 연습 > 헤비 유저가 소유한 장소 - MySQL (JOIN) (0) | 2024.02.23 |
---|---|
코딩테스트 연습 > 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 - MySQL (CONCAT, ORDER BY) (0) | 2024.02.23 |
코딩테스트 연습 > 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 (0) | 2024.02.22 |
코딩테스트 연습 > 조건에 맞는 사용자 정보 조회하기 (0) | 2024.02.19 |
코딩테스트 연습 > 즐겨찾기가 가장 많은 식당 정보 출력하기 (0) | 2024.02.19 |