CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서
대여 시작일이 2022년 9월에 속하는 대여 기록에 대해서
대여 기간이 30일 이상이면 '장기 대여' 그렇지 않으면 '단기 대여' 로 표시하는
컬럼(컬럼명: RENT_TYPE)을 추가하여 대여기록을 출력하는 SQL문을 작성해주세요.
결과는 대여 기록 ID를 기준으로 내림차순 정렬해주세요.
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 DATEDIFF(END_DATE,START_DATE) >=29 THEN "장기 대여"
ELSE "단기 대여" END RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE DATE_FORMAT(START_DATE,'%Y-%m') = '2022-09'
ORDER BY 1 DESC
1. DATEDIFF를 통해 대여 기간을 구해준다.
2. 30일 이상이면 장기대여 그 외에는 단기 대여로 주고 RENT_TYPE에 할당
3. WHERE로 2022년 9월에 속하는 것들만
30일 이상인데 왜 >= 29로 했느냐?
30으로 하니까 END_DATE - START_DATE 결과가 0이 나오는 행이 있었다.
그래서 보통 DATEDIFF(END_DATE,START_DATE) >=29 또는
DATEDIFF(END_DATE,START_DATE) + 1>=30을 해주더라
'코드카타' 카테고리의 다른 글
[SQL]프로그래머스 Lv.3 헤비 유저가 저장한 장소 (0) | 2023.12.24 |
---|---|
[SQL]프로그래머스 Lv.2 자동차 평균 대여 기간 구하기 (0) | 2023.12.23 |
[SQL]프로그래머스 Lv.4 서울에 위치한 식당 목록 출력하기 (1) | 2023.12.23 |
[SQL]프로그래머스 Lv.4 년, 월, 성별 별 상품 구매 회원 수 구하기 (1) | 2023.12.22 |
[SQL]프로그래머스 Lv.1 특정 옵션이 포함된 자동차 리스트 구하기 (0) | 2023.12.22 |