[프로그래머스 Lv2.] 157342번 자동차 평균 대여 기간 구하기 (ORACLE)

2024. 2. 7. 08:42·Coding Test/SQL 고득점 Kit[ORACLE]

문제 설명

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

Column name  Type  Nullable
HISTORY_ID INTEGER FALSE
CAR_ID INTEGER FALSE
START_DATE DATE FALSE
END_DATE DATE FALSE

문제

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


예시

예를 들어 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블이 다음과 같다면

HISTORY_ID   CAR_ID START_DATE  END_DATE
1 1 2022-09-27 2022-10-01
2 1 2022-10-03 2022-11-04
3 2 2022-09-05 2022-09-05
4 2 2022-09-08 2022-09-10
5 3 2022-09-16 2022-10-15
6 1 2022-11-07 2022-12-06

 

자동차 별 평균 대여 기간은

  • 자동차 ID가 1인 자동차의 경우, 대여 기간이 각각 5일, 33일, 30일인 기록이 존재하므로 평균 22.7일
  • 자동차 ID가 2인 자동차의 경우, 대여 기간이 각각 1일, 3일인 기록이 존재하므로 평균 2일
  • 자동차 ID가 3인 자동차의 경우, 대여 기간이 30일인 기록만 존재하므로 평균 30일 입니다. 평균 대여 기간이 7일 이상인 자동차는 자동차 ID가 1, 3인 자동차이고, 평균 대여 기간 내림차순 및 자동차 ID를 기준으로 내림차순 정렬하면 다음과 같이 나와야 합니다.
CAR_ID AVERAGE_DURATION
3 30.0
1 22.7

-- 코드를 입력하세요
SELECT 
    CAR_ID
    , ROUND(AVG(END_DATE - START_DATE + 1), 1) AS AVERAGE_DURATION
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
HAVING ROUND(AVG(END_DATE - START_DATE + 1)) >= 7
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC;
저작자표시 비영리 변경금지 (새창열림)

'Coding Test > SQL 고득점 Kit[ORACLE]' 카테고리의 다른 글

[프로그래머스 Lv2.] 59046번 루시와 엘라 찾기 (ORACLE)  (0) 2024.02.07
[프로그래머스 Lv4.] 132204번 취소되지 않은 진료 예약 조회하기 (ORACLE)  (0) 2024.02.07
[프로그래머스 Lv3.] 157341번 대여 기록이 존재하는 자동차 리스트 구하기 (ORACLE)  (1) 2024.02.07
[프로그래머스 Lv3.] 131113번 조건별로 분류하여 주문상태 출력하기 (ORACLE)  (1) 2024.02.07
[프로그래머스 Lv2.] 164672번 조건에 부합하는 중고거래 상태 조회하기 (ORACLE)  (0) 2024.02.07
'Coding Test/SQL 고득점 Kit[ORACLE]' 카테고리의 다른 글
  • [프로그래머스 Lv2.] 59046번 루시와 엘라 찾기 (ORACLE)
  • [프로그래머스 Lv4.] 132204번 취소되지 않은 진료 예약 조회하기 (ORACLE)
  • [프로그래머스 Lv3.] 157341번 대여 기록이 존재하는 자동차 리스트 구하기 (ORACLE)
  • [프로그래머스 Lv3.] 131113번 조건별로 분류하여 주문상태 출력하기 (ORACLE)
woojin._.
woojin._.
여러가지 개발을 해보며 발생하는 이야기들에 대한 블로그입니다:)
  • woojin._.
    Jin's Dev Story
    woojin._.
  • 전체
    오늘
    어제
    • 분류 전체보기 (829)
      • Tools (25)
        • eGovFrame (3)
        • GeoServer (3)
        • QGIS (2)
        • LabelImg (2)
        • Git (6)
        • GitHub (1)
        • Eclipse (7)
        • Visual Studio (1)
      • Web & Android (121)
        • SpringBoot (37)
        • Three.js (2)
        • Spring Data JPA (9)
        • 스프링 부트 쇼핑몰 프로젝트 with JPA (25)
        • Thymeleaf (4)
        • Spring Security (15)
        • Flutter (29)
      • Programming Language (61)
        • JAVA (27)
        • JavaScript (14)
        • Dart (2)
        • Python (15)
        • PHP (3)
      • Database (43)
        • PostgreSQL (32)
        • MYSQL (7)
        • Oracle (3)
        • MSSQL (1)
      • SERVER (17)
        • TCP_IP (3)
        • 리눅스 (7)
        • AWS (7)
      • Coding Test (445)
        • 백준[JAVA] (108)
        • 프로그래머스[JAVA] (260)
        • 알고리즘 고득점 Kit[JAVA] (3)
        • SQL 고득점 Kit[ORACLE] (74)
      • CS 지식 (49)
        • [자료구조] (14)
        • [네트워크] (12)
        • [데이터베이스] (10)
        • [알고리즘] (9)
        • [운영체제] (4)
      • 기타 (6)
      • 자격증 & 공부 (62)
        • 정보처리기사 (2)
        • SQLD (6)
        • 네트워크관리사 2급 (5)
        • 리눅스마스터 1급 (44)
        • 리눅스마스터 2급 (1)
        • ISTQB (3)
        • 시스템보안 (1)
  • 블로그 메뉴

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

  • 태그

    Linux
    Java
    시큐리티
    baekjoon
    스프링부트
    프로그래머스
    리눅스마스터
    Flutter
    데이터
    pcce 기출문제
    JPA
    CS지식
    CS
    backjoon
    리눅스
    백준
    springboot
    Oracle
    Spring Security
    리눅스마스터 1급
    데이터베이스
    자바
    spring
    postgresql
    플러터
    python
    스프링 부트 쇼핑몰 프로젝트 with JPA
    스프링
    programmers
    DB
  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
woojin._.
[프로그래머스 Lv2.] 157342번 자동차 평균 대여 기간 구하기 (ORACLE)
상단으로

티스토리툴바