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