[Oracle][Programmers] 자동차 평균 대여 기간 구하기

2025. 5. 24. 14:06·[Programmers]/- SQL

1. 문제

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

CAR_RENTAL_COMPANY_RENTAL_HISTORY

평균 대여 기간(AVERAGE_DURATION)이 7일 이상인 자동차들의 자동차 ID(CAR_ID)와 평균 대여 기간 리스트를 출력하는 문제. 평균 대여 기간은 소수점 두번째 자리에서 반올림하고, 결과는 평균 대여 기간을 기준으로 내림차순 정렬하는데 만약 이 값이 같다면 자동차 ID를 기준으로 내림차순 정렬.

CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블 데이터(이하 생략)

 

2. 풀이

  • 대여 기간은 빌린 날부터 1일이므로 end_date - start_date+1로 계산해야 함
  • 평균 대여 기간을 소수점 두번째 자리에서 반올림 : ROUND(AVG(end_date - start_date+1), 1)
  • 평균 대여 기간 기준 내림차순 정렬, 같다면 ID 기준 내림차순 정렬 : ORDER BY average_duration DESC, car_id DESC
  • 평균 대여 기간이 7일 이상 : WHERE average_duration >= 7

✏️ 정답 쿼리

SELECT car_id, TO_CHAR(average_duration, '990.0') AS average_duration
FROM (
    SELECT car_id,
       ROUND(AVG(end_date - start_date+1), 1) AS average_duration
    FROM car_rental_company_rental_history
    GROUP BY car_id
    ORDER BY average_duration DESC,
             car_id DESC
)
WHERE average_duration >= 7

=> ROUND( )를 했을 때 반올림 결과가 xxx.0이라면 소숫점은 출력되지 않는데 출력 형태에서는 xxx.0 형태가 명시되어 있음

=> 이를 위해 TO_CHAR(average_duration, '999.0') 포맷 사용

https://semin1127.tistory.com/115

 

저작자표시 비영리 (새창열림)

'[Programmers] > - SQL' 카테고리의 다른 글

[Oracle][Programmers] 자동차 대여 기록에서 대여중/대여 가능 여부 구분하기  (1) 2025.05.27
[Oracle][Programmers] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기  (0) 2025.05.25
[Oracle][Programmers] 조건에 부합하는 중고거래 상태 조회하기(Lv 2)  (0) 2025.05.24
[Oracle][Programmers] 여러 기준으로 정렬하기  (0) 2025.05.24
[Oracle][Programmers] 상위 n개 레코드  (0) 2025.05.24
'[Programmers]/- SQL' 카테고리의 다른 글
  • [Oracle][Programmers] 자동차 대여 기록에서 대여중/대여 가능 여부 구분하기
  • [Oracle][Programmers] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기
  • [Oracle][Programmers] 조건에 부합하는 중고거래 상태 조회하기(Lv 2)
  • [Oracle][Programmers] 여러 기준으로 정렬하기
Semincolon
Semincolon
It seems small, that semicolon is a big deal.
  • Semincolon
    Semincolon
    Semincolon
  • 전체
    오늘
    어제
    • 분류 전체보기 (133)
      • [Programming Language] (78)
        • [JSP] (6)
        • [Swift] (23)
        • [SwiftUI] (16)
        • [Python] (22)
        • [C언어] (6)
        • [Kotlin] (4)
        • [C#] (1)
      • [Frame Work] (5)
        • [Flutter] (4)
        • [Spring Boot] (1)
      • [Projects] (3)
        • [Android][Kotlin] 공유 캘린더(20.. (1)
        • [Unity] 인내의 숲(2024.03) (2)
      • [DB] (15)
        • - Oracle (15)
      • [Programmers] (25)
        • - SQL (25)
      • [ETC] (2)
      • Today's Learning (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
Semincolon
[Oracle][Programmers] 자동차 평균 대여 기간 구하기
상단으로

티스토리툴바