mySQL
자동차 평균 대여 기간 구하기
bellhundred
2023. 2. 14. 13:11
https://school.programmers.co.kr/learn/courses/30/lessons/157342
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
-- 코드를 입력하세요
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
1. DATEDIFF : MySQL에서, 날짜 간의 차이를 계산하는 방법
2. +1하는 이유 :
SELECT DATEDIFF('2022-10-01', '2022-09-27');
을 하게 되면 4가 나오게 되는데, 렌탈은 빌린 시점부터 1일로 치게 되므로 27일, 28일, 29일, 30일, 1일로 총 5일이 나와야 한다. 이렇게 소실되는 1일을 보충해주고자 +1을 더해 준다.
3. ROUND : 반올림 함수, 문제에서 소수점 2째자리에서 반올림해서 소수점 1자리만 표시해야 하므로 파라미터를 1로 맞췄다.
4. GROUP BY : CAR_ID로 그룹화함.
5. HAVING : GROUP BY한 것들의 조건을 설정할 때 사용
6. ORDER BY : 복수 조건일 경우 위의 형태대로 사용, 기본적으로 ASC로 되어 있으므로 DESC로 맞춰줄 것,