- CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 대여 시작일을 기준으로 2022년 8월부터 2022년 10월까지 총 대여 횟수가 5회 이상인 자동차들에 대해서 해당 기간 동안의 월별 자동차 ID 별 총 대여 횟수(컬럼명: RECORDS) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 월을 기준으로 오름차순 정렬하고, 월이 같다면 자동차 ID를 기준으로 내림차순 정렬해주세요. 특정 월의 총 대여 횟수가 0인 경우에는 결과에서 제외해주세요.
SELECT MONTH(start_date) MONTH
, car_id
, COUNT(*) RECORDS
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE (START_DATE between '2022-08-01' AND '2022-10-31') # 해당기간동안의
AND (car_id IN( # WHERE 절에서 서브쿼리
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(car_id) >= 5
))
GROUP BY 1,2
ORDER BY 1, 2 DESC
① 서브쿼리
# 22년8월부터 10월까지의 총 대여 횟수가 5회 이상인 자동차들을 뽑아준다
② WHERE (START_DATE between '2022-08-01' AND '2022-10-31')
# 해당 기간 동안의 월별 기준이기 때문에
WHERE 절에서 해당 기간의 조건을 넣어준다.
# 서브쿼리에서는 car_id 만 뽑아줌!
해당 기간 동안 + 5회 이상인 car_id
두가지 다 만족해야하기 때문에 서브쿼리와 where 절에도 적어준다.
https://school.programmers.co.kr/learn/courses/30/lessons/151139
'SQL 코드카타' 카테고리의 다른 글
특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2024.04.16 |
---|---|
입양 시각 구하기(2) #WITH RECURSIVE , SET함수 (0) | 2024.04.11 |
헤비 유저가 소유한 장소 # where 절 서브쿼리 (0) | 2024.04.04 |
자동차 평균 대여 기간 구하기 (1) | 2024.04.04 |
자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 # SELECE절 서브쿼리 (1) | 2024.04.03 |