DB/쿼리 문제풀이

프로그래머스 ORACLE 자동차 평균 대여 기간 구하기

sshhhh 2023. 10. 6.

정답

SELECT
    CAR_ID, 
    ROUND(AVG(END_DATE - START_DATE + 1),1) AS AVERAGE_DURATION --반올림
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
HAVING AVG(END_DATE - START_DATE +1) >= 7
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC;

두 날짜 사이의 전체 일수를 계산

  • 2022-10-01 - 2022-09-27 = 4로 계산하면, 결과값이 4일이 나옵니다.
  • 그러나 현실에서 2022-09-27부터 2022-10-01은 5일간의 기간입니다.

일반적으로 두 날짜 간의 차이를 계산할 때는, 시작 날짜와 종료 날짜를 모두 포함하여 계산하는 것이 정확한 결과를 얻는 방법입니다. 따라서 END_DATE - START_DATE + 1을 사용하여 두 날짜 사이의 전체 일수를 계산합니다. 여기서 +1은 종료 날짜를 포함시키기 위한 것입니다.

즉, 2022-09-27에서 2022-10-01 사이의 차이는 5일이 되어야 하므로, END_DATE - START_DATE + 1은 5를 계산하게 됩니다.

댓글