프로그래머스 SQL 고득점 킷 자동차 평균 대여 기간 구하기

hysss·2023년 2월 20일
0

String, Date - 자동차 평균 대여 기간 구하기

문제 분석

CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서
평균 대여 기간이 7일 이상인 자동차들의
자동차 ID와 평균 대여 기간(컬럼명: AVERAGE_DURATION) 리스트를 출력하는 SQL문을 작성해주세요.
평균 대여 기간은 소수점 두번째 자리에서 반올림하고,
결과는 평균 대여 기간을 기준으로 내림차순 정렬해주시고,
평균 대여 기간이 같으면 자동차 ID를 기준으로 내림차순 정렬해주세요.

코드

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

문제 풀이

자동차 ID별로 group을 만들고, 각 group별로 평균 대여 기간을 구했을 때 7일 이상인 자동차들의 자동차 ID와 평균 대여 기간을 출력하는 문제였다.

평균 대여 기간AVG() 함수DATEDIFF() 함수로 구했다.

  • DATEDIFF(END_DATE, START_DATE) + 1: 각 대여 기록의 대여 기간 구하기
  • AVG(DATEDIFF(...)): 해당 자동차의 평균 대여 기간 구하기

결과를 출력할 때 평균 대여 기간의 소수점 두번째 자리에서 반올림을 해야 하기 때문에 ROUND(..., 1)을 사용했다.

  • ROUND(..., 1): 소수점 두번째 자리에서 반올림해서 소수점을 1자리로 만들어라

참고

예전에 반올림(ROUND), 올림(CEIL), 버림(FLOOR), 원하는 자리까지 버림(TRUNCATE)에 대해서 정리했던 내용이 있다.

기본적인 반올림, 올림, 버림 함수들: 프로그래머스 SQL 고득점 킷 평균 일일 대여 요금 구하기
정수 자리에서의 반올림, 버림: 프로그래머스 SQL 고득점 킷 가격대 별 상품 개수 구하기

profile
매일 매일 규칙적으로

0개의 댓글