출처 : https://school.programmers.co.kr/learn/courses/30/lessons/151139?language=oracle
풀이 방법
먼저 대여 시작일이 8월에서 11월까지인 대여를 추출하기 위해 TO_DATE함수를 사용해서 8월 1일과 11월 1일을 DATE로 만들어 준 후 비교한다.
그 후 같은 CAR_ID끼리는 그룹화해 대여 횟수가 5번 이상인 CAR_ID를 추출한다.
DATE TYPE에서 MONTH를 추출하기 위해 EXTRACT함수를 사용해서 MONTH만 추출해 준다.
EXTRACT(MONTH FROM A.START_DATE), A.CAR_ID
이를 통해 그룹화 해 각 아이디별 대여 횟수를 구하면 된다.
SELECT EXTRACT(MONTH FROM A.START_DATE) AS MONTH
, A.CAR_ID
, COUNT(A.CAR_ID) AS RECORDS
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY A
, (SELECT CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY C
WHERE START_DATE >= TO_DATE('2022-08-01', 'YYYY-MM-DD')
AND START_DATE < TO_DATE('2022-11-01','YYYY-MM-DD')
GROUP BY CAR_ID
HAVING COUNT(CAR_ID) >= 5) B
WHERE A.CAR_ID = B.CAR_ID
AND A.START_DATE >= TO_DATE('2022-08-01', 'YYYY-MM-DD')
AND START_DATE < TO_DATE('2022-11-01','YYYY-MM-DD')
GROUP BY EXTRACT(MONTH FROM A.START_DATE), A.CAR_ID
ORDER BY MONTH, CAR_ID DESC
'SQL' 카테고리의 다른 글
[오라클] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (문자열연결, ROWNUM) (1) | 2024.09.21 |
---|---|
[오라클] 조건에 부합하는 중고거래 상태 조회하기 (0) | 2024.09.21 |
[오라클] 자동차 평균 대여 기간 구하기 (0) | 2024.09.20 |
[오라클] 보호소에서 중성화한 동물 (0) | 2024.09.20 |
[오라클] 오랜 기간 보호한 동물(1) ROWNUM 사용하기 (0) | 2024.09.19 |