CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 평균 대여 기간이 7일 이상인 자동차들의 자동차 ID와 평균 대여 기간(컬럼명: AVERAGE_DURATION) 리스트를 출력하는 SQL문을 작성해주세요. 평균 대여 기간은 소수점 두번째 자리에서 반올림하고, 결과는 평균 대여 기간을 기준으로 내림차순 정렬해주시고, 평균 대여 기간이 같으면 자동차 ID를 기준으로 내림차순 정렬해주세요.
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
첫번째 자리까지만 표현이 되는 것이였다...
그래서 답은 ROUND, 1 이였다.
문제를 자세히 읽어보장..!
두 날짜간의 차이를 계산할 때 쓰이는
DATEDIFF 는 뒤에 +1 을 해줘야 된다!
GROUP BY & HAVING 은 짝꿍이다