IT/SQL

[MySQL] 프로그래머스 - 자동차 평균 대여 기간 구하기

무지개는 환상 2024. 1. 18. 17:23

<CAR_RENTAL_COMPANY_RENTAL_HISTORY> 테이블 구조

CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블

 

<문제>

 

 

 

<문제 풀이>

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

 

AVERAGE_DURATION 을 계산하는 부분이 가장 어려운 부분이었다.

DATEDIFF() 함수로 기간을 구한 후 1일을 더한 후 평균을 구해야 한다. (두 날짜 사이의 값을 구하기 때문에 1을 더하여 기간을 구해야한다!!)

그 후 각 CAR_ID 별 평균을 구해주고, 문제에서 요구하는 소수 점 2번째 자리에서 반올림 하면 첫번째 자리이기 때문에 round 함수에 1을 넣어 줘야한다. 

 

* DATEDIFF( end_date, start_date) = 두 날짜 사이의 기간

  DATEDIFF( hour, start_date, end_date) = 두 날짜 사이의 기간을 앞에 단위로 표현

 

출처 : 프로그래머스 - 자동차 평균 대여 기간 구하기