inblog logo
|
DailyCoding
    CodingTestSQL

    51. 자동차 대여 기록에서 장기/단기 대여 구분하기

    박은서's avatar
    박은서
    Feb 12, 2026
    51. 자동차 대여 기록에서 장기/단기 대여 구분하기
    Contents
    1. 문제2. 풀이
    2026.02.12(THU)_51일차

    1. 문제

    문제 설명

    다음은 어느 자동차 대여 회사의 자동차 대여 기록 정보를 담은 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 테이블에서 대여 시작일이 2022년 9월에 속하는 대여 기록에 대해서 대여 기간이 30일 이상이면 '장기 대여' 그렇지 않으면 '단기 대여' 로 표시하는 컬럼(컬럼명: RENT_TYPE)을 추가하여 대여기록을 출력하는 SQL문을 작성해주세요. 결과는 대여 기록 ID를 기준으로 내림차순 정렬해주세요.

    예시

    예를 들어 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블이 다음과 같다면
    HISTORY_ID
    CAR_ID
    START_DATE
    END_DATE
    1
    4
    2022-09-27
    2022-11-27
    2
    3
    2022-10-03
    2022-11-04
    3
    2
    2022-09-05
    2022-09-05
    4
    1
    2022-09-01
    2022-09-30
    5
    3
    2022-09-16
    2022-10-15
    2022년 9월의 대여 기록 중 '장기 대여' 에 해당하는 기록은 대여 기록 ID가 1, 4인 기록이고, '단기 대여' 에 해당하는 기록은 대여 기록 ID가 3, 5 인 기록이므로 대여 기록 ID를 기준으로 내림차순 정렬하면 다음과 같이 나와야 합니다.
    HISTORY_ID
    CAR_ID
    START_DATE
    END_DATE
    RENT_TYPE
    5
    3
    2022-09-16
    2022-10-13
    단기 대여
    4
    1
    2022-09-01
    2022-09-30
    장기 대여
    3
    2
    2022-09-05
    2022-09-05
    단기 대여
    1
    4
    2022-09-27
    2022-10-26
    장기 대여

    주의사항

    START_DATE와 END_DATE의 경우 예시의 데이트 포맷과 동일해야 정답처리 됩니다.

    2. 풀이

    SELECT HISTORY_ID, CAR_ID, DATE_FORMAT(START_DATE, '%Y-%m-%d') 'START_DATE', DATE_FORMAT(END_DATE, '%Y-%m-%d') 'END_DATE', CASE WHEN TIMESTAMPDIFF(DAY, START_DATE, END_DATE)+1 >= 30 THEN '장기 대여' ELSE '단기 대여' END 'RENT_TYPE' FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE SUBSTR(START_DATE, 1, 7) = '2022-09' ORDER BY HISTORY_ID DESC;
    HISTORY_ID
    CAR_ID
    START_DATE
    END_DATE
    RENT_TYPE
    669
    25
    2022-09-29
    2022-10-28
    장기 대여
    668
    13
    2022-09-28
    2022-09-28
    단기 대여
    667
    10
    2022-09-28
    2022-10-12
    단기 대여
    665
    23
    2022-09-26
    2022-10-06
    단기 대여
    664
    19
    2022-09-26
    2022-10-03
    단기 대여
    663
    15
    2022-09-26
    2022-09-26
    단기 대여
    660
    27
    2022-09-25
    2022-12-24
    장기 대여
    659
    25
    2022-09-25
    2022-09-27
    단기 대여
    658
    21
    2022-09-25
    2022-09-26
    단기 대여
    657
    11
    2022-09-25
    2023-01-03
    장기 대여
    656
    10
    2022-09-25
    2022-09-25
    단기 대여
    654
    12
    2022-09-24
    2022-09-25
    단기 대여
    653
    6
    2022-09-24
    2022-10-24
    장기 대여
    650
    13
    2022-09-23
    2022-09-24
    단기 대여
    649
    7
    2022-09-23
    2022-10-06
    단기 대여
    648
    5
    2022-09-23
    2022-11-02
    장기 대여
    646
    23
    2022-09-22
    2022-09-24
    단기 대여
    645
    10
    2022-09-22
    2022-09-23
    단기 대여
    642
    19
    2022-09-21
    2022-09-23
    단기 대여
    641
    12
    2022-09-21
    2022-09-23
    단기 대여
    640
    8
    2022-09-21
    2022-09-24
    단기 대여
    639
    25
    2022-09-20
    2022-09-21
    단기 대여
    638
    15
    2022-09-20
    2022-09-23
    단기 대여
    637
    11
    2022-09-19
    2022-09-19
    단기 대여
    635
    24
    2022-09-18
    2022-10-28
    장기 대여
    634
    19
    2022-09-18
    2022-09-20
    단기 대여
    632
    11
    2022-09-17
    2022-09-18
    단기 대여
    631
    8
    2022-09-17
    2022-09-19
    단기 대여
    630
    20
    2022-09-16
    2022-10-16
    장기 대여
    629
    18
    2022-09-16
    2022-10-16
    장기 대여
    628
    12
    2022-09-16
    2022-09-18
    단기 대여
    627
    8
    2022-09-16
    2022-09-16
    단기 대여
    626
    23
    2022-09-15
    2022-09-16
    단기 대여
    624
    24
    2022-09-14
    2022-09-14
    단기 대여
    623
    20
    2022-09-14
    2022-09-15
    단기 대여
    622
    13
    2022-09-14
    2022-09-21
    단기 대여
    621
    11
    2022-09-14
    2022-09-16
    단기 대여
    620
    28
    2022-09-13
    2022-12-22
    장기 대여
    619
    18
    2022-09-13
    2022-09-15
    단기 대여
    618
    8
    2022-09-13
    2022-09-14
    단기 대여
    616
    25
    2022-09-12
    2022-09-14
    단기 대여
    615
    11
    2022-09-12
    2022-09-13
    단기 대여
    614
    28
    2022-09-11
    2022-09-12
    단기 대여
    613
    4
    2022-09-11
    2022-10-21
    장기 대여
    611
    13
    2022-09-10
    2022-09-11
    단기 대여
    610
    20
    2022-09-09
    2022-09-12
    단기 대여
    609
    18
    2022-09-09
    2022-09-12
    단기 대여
    607
    24
    2022-09-08
    2022-09-11
    단기 대여
    606
    22
    2022-09-07
    2022-12-06
    장기 대여
    605
    25
    2022-09-06
    2022-09-09
    단기 대여
    604
    22
    2022-09-06
    2022-09-06
    단기 대여
    603
    18
    2022-09-06
    2022-09-07
    단기 대여
    602
    20
    2022-09-05
    2022-09-06
    단기 대여
    601
    2
    2022-09-05
    2022-10-05
    장기 대여
    597
    23
    2022-09-04
    2022-09-07
    단기 대여
    596
    11
    2022-09-04
    2022-09-04
    단기 대여
    595
    10
    2022-09-03
    2022-09-18
    단기 대여
    594
    12
    2022-09-02
    2022-09-15
    단기 대여
    593
    25
    2022-09-01
    2022-09-03
    단기 대여
    592
    10
    2022-09-01
    2022-09-02
    단기 대여
    591
    8
    2022-09-01
    2022-09-11
    단기 대여
    Share article
    Contents
    1. 문제2. 풀이

    DailyCoding

    RSS·Powered by Inblog