본문 바로가기
SQL

자동차 평균 대여 기간 구하기 ( 프로그래머스, Lv.2, MySQL )

by 익명의 문과 개발자 2024. 10. 17.
728x90
728x90

 

이번 문제는 프로그래머스의 Lv2문제인 자동차 평균 대여 기간 구하기이다.

이번 문제에서 내가 막힌 부분은 바로

날짜 간의 차이를 구하는 법!!!

처음에 작성했던 코드를 확인해 보자!

 

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 AVERAGE_DURATION >= 7
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC;

 

 

그냥 END_DATE에서 START_DATE를 빼주면 그 차이가 계산될 거라 생각했다.

하지만 다른 결괏값이 나왔고, 이를 해결하기 위해서는 DATEDIFF 함수가 필요했다.

 

이 함수를 사용한 수정된 코드를 봐보자!

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;

 

 

이렇게 차이를 함수로 구해주고 1을 더해주면 끝!

 

나머지는 문제에 주어진 조건대로 구현하면 된다.

 

 

 

728x90