본문 바로가기
PS/SQL

[SQL] 자동차 평균 대여 기간 구하기

by 행복한라이언 2024. 2. 12.
728x90
반응형

문제링크

 

 

1. 핵심

  • 대여기간
    • timestampdiff(day, start, end) + 1 > 오늘 대여하고 오늘 반납해도 대여일은 1일이다.
  • 평균 대여기간 
    • 집계함수 avg가 필요하다. car_id를 기준으로 group by를 진행해 평균 duration을 계산한다.
    • 평균 대여기간이 7일이상이라는 조건이 있다. 반드시 문제 풀기 전에 확인한다.

2. 코드(MySQL)

# 평균대여기간 7일이상
# 대여기간 +1 잊지말자!
# 평균기간 내림차순 id 내림차순
with temp as (
    select CAR_ID, timestampdiff(day, START_DATE, END_DATE) + 1 as DURATION
    from CAR_RENTAL_COMPANY_RENTAL_HISTORY
)

select CAR_ID, round(avg(DURATION), 1) as AVERAGE_DURATION
from temp
group by CAR_ID
having AVERAGE_DURATION >= 7
order by AVERAGE_DURATION desc, CAR_ID desc;
728x90
반응형