SQL

[오라클] 자동차 평균 대여 기간 구하기

salmon16 2024. 9. 20. 12:19

출처 : https://school.programmers.co.kr/learn/courses/30/lessons/157342

 

프로그래머스

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

programmers.co.kr

풀이 방법

일단 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