[mysql/oracle] 자동차 평균 대여 기간 구하기

2023. 2. 9. 22:28Programmers/SQL

문제

 

정답

 

mysql

1
2
3
4
5
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 avg(datediff(end_date, start_date)+1>= 7
order by average_duration desc
,car_id desc
cs

mysql에서는 날짜의 차이를 구해주는 datediff()를 이용하면 된다.

datediff(끝날짜, 시작날짜)

빌린 당일에 반납하면 1일로 쳐야하므로 대여일수, 이용일수 등을 구할 때는 +1을 절대 잊으면 안 된다.

 

oracle

1
2
3
4
5
SELECT car_id
,round(avg(end_date - start_date+1),1) average_duration
from CAR_RENTAL_COMPANY_RENTAL_HISTORY
group by car_id
having avg(end_date - start_date+1>= 7
order by average_duration desc
,car_id desc
cs

oracle에서는 datediff처럼 날짜의 차이를 구해주는 함수가 없으므로 그냥 빼준다.