[프로그래머스] SQL 고득점 kit(자동차 평균 대여 기간 구하기)

728x90

1.자동차 평균 대여 기간 구하기


문제 설명


다음은 어느 자동차 대여 회사의 자동차 대여 기록 정보를 담은 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블입니다. CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블은 아래와 같은 구조로 되어있으며, HISTORY_ID, CAR_ID, START_DATE, END_DATE 는 각각 자동차 대여 기록 ID, 자동차 ID, 대여 시작일, 대여 종료일을 나타냅니다.

 

문제


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
GROUP BY CAR_ID
HAVING AVERAGE_DURATION >= 7
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC

 

  1. ROUND 함수:
    • ROUND() 함수는 숫자를 반올림하는 데 사용된다.
    • 일반적인 구문은 ROUND(expression, decimals)이며, expression은 반올림할 수, decimals은 소수점 이하 자릿수이다.
    • 예를 들어, ROUND(12.345, 1)은 12.3으로 반올림한다.
  2. AVG 함수:
    • AVG() 함수는 주어진 열의 평균값을 계산하는 데 사용된다.
    • 일반적인 구문은 AVG(expression)이며, expression은 평균을 계산할 열이나 표현식이다.
    • 예를 들어, AVG(column_name)은 특정 열의 값들의 평균을 반환한다.
  3. DATEDIFF 함수:
    • DATEDIFF() 함수는 두 날짜 간의 차이를 계산하는 데 사용된다.
    • 일반적인 구문은 DATEDIFF(unit, start_date, end_date)이며, unit은 날짜 차이의 단위(일, 주, 월 등), start_date와 end_date는 비교할 두 날짜이다.
    • unit을 생략하면 기본적으로 일(day) 단위로 차이를 계산한다.
    • 예를 들어, DATEDIFF(DAY, '2022-01-01', '2022-01-10')은 '2022-01-01'과 '2022-01-10' 사이의 일 수를 반환한다.

 

 

풀이 참고

https://suminii.tistory.com/entry/MYSQL-%EC%9E%90%EB%8F%99%EC%B0%A8-%ED%8F%89%EA%B7%A0-%EB%8C%80%EC%97%AC-%EA%B8%B0%EA%B0%84-%EA%B5%AC%ED%95%98%EA%B8%B0

 

[MYSQL] 자동차 평균 대여 기간 구하기 (프로그래머스/Level 2)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설

suminii.tistory.com

 

728x90