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
반응형
'PS > SQL' 카테고리의 다른 글
[SQL] 우유와 요거트가 담긴 장바구니 (0) | 2024.02.12 |
---|---|
[SQL] 조건에 맞는 사용자 정보 조회하기 (1) | 2024.02.12 |
[SQL] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2024.02.11 |
[SQL] 5월 식품들의 총매출 조회하기 (0) | 2024.02.11 |
[SQL] 주문량이 많은 아이스크림들 조회하기 (2) | 2024.02.10 |