[프로그래머스/MySQL] Lv.2 자동차 평균 대여 기간 구하기
문제
https://school.programmers.co.kr/learn/courses/30/lessons/157342
해설
복잡하게 푸는 방법이 있고 적당히 잘 하나의 쿼리로 처리하는 방법이 있습니다.
둘 중 어떤게 더 성능상 유리하다고 말씀드리긴 어렵지만 저는 GROUP BY 를 사용해서 풀이를 했습니다.
서브쿼리를 이용해도 가능해보입니다.
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;
날짜의 기간을 계산하는 쿼리에는 DATE_DIFF 가 있습니다. 이걸 사용하실때 주의할 점은 정확한 기간차이를 구할때는 반드시 +1을 해줘야 한다는 점입니다.
이거 때문에 좀 고생한 문제가 있었습니다.
반응형
'코딩테스트(알고리즘, SQL) > 프로그래머스' 카테고리의 다른 글
[coding test] 카카오 블라인드 2021 - 신규 아이디 추천 (0) | 2021.10.14 |
---|