출처 : https://school.programmers.co.kr/learn/courses/30/lessons/157342
풀이 방법
일단 CAR_ID를 기준으로 그룹을 만든다. 그 후 HAVING 조건으로 차이가 7일 이상 나는 그룹을 선택한다.
여기서 ROUND 함수를 사용해서 소수점 두 번째 자리에서 반올림을 한다.
SELECT 할 때 중요한 점은 나누어 떨어지는 기간이라도 마지막에 .0을 붙여줘야 한다는 것이다.
이를 위해 TO_CHAR함수를 사용해서 포멧을 맞추어 준다. 'FM9990.0')
SELECT
CAR_ID
, TO_CHAR(ROUND(AVG(END_DATE - START_DATE + 1), 1), 'FM9990.0') AS AVERAGE_DURATION
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
HAVING ROUND(AVG(END_DATE - START_DATE + 1), 1) >= 7
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC
'SQL' 카테고리의 다른 글
[오라클] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (문자열연결, ROWNUM) (1) | 2024.09.21 |
---|---|
[오라클] 조건에 부합하는 중고거래 상태 조회하기 (0) | 2024.09.21 |
[오라클] 보호소에서 중성화한 동물 (0) | 2024.09.20 |
[오라클] 오랜 기간 보호한 동물(1) ROWNUM 사용하기 (0) | 2024.09.19 |
[오라클] 오라클에서 별칭 (0) | 2024.09.19 |