프로그래머스 자동차 평균 대여 기간 구하기
-- 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 |