문제
풀이
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
자동차별 평균 대여 기간을 구해줘야하기 때문에, CAR_ID로 그룹화를 해주고, 시작 날짜와 끝 날짜의 차이를 구해준다
* 주의할 점이 DATE_DIFF로 대여 일수 등의 날짜 차이를 구할 때는 +1를 해줘야한다는 점이다
ex. 2023-09-19 부터 2023-9-20일은 이틀 동안 빌린 것임
그리고 그룹화된 집계 결과 ( = AVERAGE_DURATION) 에 7일 이상 이라는 조건식을 적용해야 하니까
having절에 AVERAGE_DURATION >= 7 을 써주면 된다.