노아

[프로그래머스] 자동차 평균 대여 기간 구하기 본문

알고리즘/SQL

[프로그래머스] 자동차 평균 대여 기간 구하기

Noaahhh 2024. 9. 18. 23:52

 

Question

 

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

 

Pseudocode

 

 

  1. CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 CAR_ID별로 그룹화.
  2. 각 CAR_ID에 대해, START_DATE와 END_DATE 사이의 날짜 차이를 계산하고, 하루를 추가하여 대여 기간(DATEDIFF(END_DATE, START_DATE) + 1)을 구함.
  3. 이 대여 기간의 평균을 계산하고 소수점 첫째 자리까지 반올림하여 AVERAGE_DURATION으로 표시.
  4. AVERAGE_DURATION이 7일 이상인 CAR_ID만 필터링.
  5. AVERAGE_DURATION을 기준으로 내림차순으로 정렬하고, CAR_ID를 기준으로 내림차순으로 추가 정렬하여 결과를 반환.

 

 

 

Code

 

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