반응형
자동차 평균 대여 기간 구하기
테이블 : CAR_RENTAL_COMPANY_RENTAL_HISTORY
[프로그래머스] 테이블 CAR_RENTAL_COMPANY_RENTAL_HISTORY
테이블 CAR_RENTAL_COMPANY_RENTAL_HISTORY 어느 자동차 대여 회사의 자동차 대여 기록 정보 Column name Type Nullable Description Example HISTORY_ID INTEGER False 자동차 대여 기록 ID 1 CAR_ID INTEGER False 자동차 ID 1 START_DATE
komishs.tistory.com
728x90
문제
예시
반응형
최종구현
- 조건 : 평균 대여 기간이 7일 이상인 자동차(CAR_ID) 조회
- CAR_ID로 그룹화
- 각 그룹의 평균 대여 기간(AVERAGE_DURATION) >= 7 인 그룹 조회
- 대여 기간 : DATEDIFF(END_DATE, START_DATE) + 1
- 대여 기간(일 수)은 DATEDIFF(날짜1, 날짜2) = 날짜1 - 날짜2로 구할 수 있음
- START_DATE = END_DATE인 경우, DATEDIFF 결과값이 0이므로 +1 해줘야 함
- 평균 대여 기간을 구할 경우, 평균을 구한 후에 +1 해줘도 결과는 동일함
- AVERAGE_DURATION : 자동차별 평균 대여 기간(=AVG()), 소수점 두번째 자리에서 반올림(=ROUND(, 1))
- 대여 기간 : DATEDIFF(END_DATE, START_DATE) + 1
- 정렬 : AVERAGE_DURATION(내림차순), CAR_ID(내림차순)
- 출력 : CAR_ID, AVERAGE_DURATION
제출 코드
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
반응형
'코딩테스트 연습 > 프로그래머스(mySQL)' 카테고리의 다른 글
[프로그래머스](Lv.3) 조건에 맞는 사용자와 총 거래금액 조회하기 (0) | 2023.05.30 |
---|---|
[프로그래머스](Lv.3) 조건에 맞는 사용자 정보 조회하기 (0) | 2023.05.30 |
[프로그래머스](Lv.3) 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (0) | 2023.05.30 |
[프로그래머스](Lv.2) 조건에 부합하는 중고거래 상태 조회하기 (0) | 2023.05.29 |
[프로그래머스](Lv.2) 재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2023.05.28 |