[프로그래머스] MySQL / 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기

2024. 1. 10. 11:53Coding/프로그래머스-SQL

문제 링크

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

 

프로그래머스

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

programmers.co.kr

 

문제 

 

코드

-- 코드를 입력하세요
SELECT CAR_ID, 
    MAX(CASE WHEN '2022-10-16' BETWEEN DATE_FORMAT(START_DATE, '%Y-%m-%d') AND DATE_FORMAT(END_DATE, '%Y-%m-%d') THEN '대여중'
         ELSE '대여 가능'
         END) AS AVAILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
ORDER BY CAR_ID DESC;

1. 대여중, 대여 가능인 경우에 대해 CASE WHEN THEN 구조로 우선 케이스 분류를 해준다. 

2. 그리고 그 위에 MAX() 함수를 넣어서 대여중인 경우, 대여중과 대여 가능 중 더 큰 값을 출력하도록 조건문의 역할을 하고 있다. 두 값 중 하나를 출력하는 조건문의 역할로 사용되었다고 보면 이해가 쉬울 것 같다.