
SQL 공부중 입니다. ✍✍✍
문제
https://school.programmers.co.kr/learn/courses/30/lessons/157342
풀이
[나의 풀이]
SELECT CAR_ID, ROUND(AVG(DATEDIFF(END_DATE,START_DATE)+1),1) "AVERAGE_DURATION"
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
HAVING ROUND(AVG(DATEDIFF(END_DATE,START_DATE)+1),1) >= 7
ORDER BY ROUND(AVG(DATEDIFF(END_DATE,START_DATE)+1),1) DESC, CAR_ID DESC;
CAR_ID로 GROUP BY 한 뒤 대여 기간 (반납 날짜 - 대여 날짜)의 평균,반올림하는 약간(?) 까다로운 문제였습니다. GROUP BY 뒤에는 HAVING 조건문이 매칭되야함을 잠시 깜빡하여 여러번 시도했습니다. 🌧🌧🌧
또한 반납 날짜와 대여 날짜가가 같을 경우에도 의미상으로 하루 빌린 것이기 때문에 DATEDIFF(END_DATE,START_DATE) + 1 로 작성하는 것이 포인트였습니다.🐭🐭🐭
감사합니다.👨🌾👨🌾👨🌾