[프로그래머스] MySQL / 자동차 대여 기록에서 장기/단기 대여 구분하기

2024. 1. 8. 15:49Coding/프로그래머스-SQL

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/151138

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제

 

코드 

-- 코드를 입력하세요
SELECT HISTORY_ID, CAR_ID, DATE_FORMAT(START_DATE, "%Y-%m-%d") AS START_DATE, DATE_FORMAT(END_DATE, "%Y-%m-%d") AS END_DATE,
CASE WHEN DATEDIFF(END_DATE, START_DATE) + 1 >= 30 then '장기 대여'
    ELSE '단기 대여'
    END AS RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE START_DATE LIKE '2022-09%'
ORDER BY HISTORY_ID DESC;

1. 우리는 하루를 셀 때 오늘 하루를 포함한다. 따라서 CASE WHEN 첫째 줄 좌항에 +1을 해준다. 

CASE WHEN으로 30일 이상인 경우와 아닌 경우를 케이스 분류 시켜준다.

2. 2022년 9월인 경우만 출력되도록 와일드카드와 LIKE를 넣어준다.