프로그래머스 자동차 평균 대여 기간 구하기

 

-- GROUP BY, HAVING
-- 기간의 합을 다 구한 후 CAR_ID 개수 만큼 나눠주기(COUNT) OR AVG 함수 사용

SELECT
    CAR_ID,
    ROUND(AVG(DATEDIFF(END_DATE, START_DATE)+1), 1) AS AVERAGE_DURATION
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
HAVING AVERAGE_DURATION >= 7
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC

 

DATEDIFF는 시작일과 종료일을 계산에 포함하지 않고, 단순히 날짜의 일수 차이를 구한다.

예를 들어 '2025-09-01'과 '2025-09-03' 차이를 구한다면 3에서 1을 뺀 2가 나온다. 하지만 1일, 2일, 3일 모두 포함시켜야 하므로 정답은 3일이다. 따라서 DATEDIFF의 결과값에 1을 더해줘야 한다. 

'Coding Test' 카테고리의 다른 글

[SQL] 그룹별 조건에 맞는 식당 출력하기  (0) 2025.09.15
[SQL] 헤비 유저가 소유한 장소  (1) 2025.09.01
[python] ISBN  (1) 2025.08.28
[java] 완주하지 못한 선수  (0) 2024.07.02
[java] [1차] 비밀지도  (0) 2024.07.02

+ Recent posts