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 H
GROUP BY CAR_ID
HAVING AVG(DATEDIFF(END_DATE, START_DATE)+1)>=7
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC
자동차 ID별로 group을 만들고, 각 group별로 평균 대여 기간을 구했을 때 7일 이상인 자동차들의 자동차 ID와 평균 대여 기간을 출력하는 문제였다.
평균 대여 기간은 AVG() 함수와 DATEDIFF() 함수로 구했다.
결과를 출력할 때 평균 대여 기간의 소수점 두번째 자리에서 반올림을 해야 하기 때문에 ROUND(..., 1)을 사용했다.
예전에 반올림(ROUND), 올림(CEIL), 버림(FLOOR), 원하는 자리까지 버림(TRUNCATE)에 대해서 정리했던 내용이 있다.
기본적인 반올림, 올림, 버림 함수들: 프로그래머스 SQL 고득점 킷 평균 일일 대여 요금 구하기
정수 자리에서의 반올림, 버림: 프로그래머스 SQL 고득점 킷 가격대 별 상품 개수 구하기