[프로그래머스_SQL] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기
📜문제
https://school.programmers.co.kr/learn/courses/30/lessons/157340
📜정답
SELECT CAR_ID,
MAX(CASE
WHEN '2022-10-16' BETWEEN START_DATE AND END_DATE
THEN '대여중'
ELSE '대여 가능'
END) AS AVAILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
ORDER BY CAR_ID DESC
📜노트
- MAX
가장 큰 값을 조회할 때 사용한다.
그러나 해당 문제에서는 CAR_ID
별로 여러개의 상태가 있다. 그러나 '대여중'
이 하나라도 있다면 대여를 할 수 없는 상태이기 때문에 '대여중'
으로 나타내야 한다.
‘대여 가능’보다 ‘대여중’이 문자열 상으로 크기 때문에 MAX함수
를 사용한다.
- BETWEEN A AND B
A이상 B이하의 값을 조회한다.
- CASE WHEN
CASE WHEN 조건1 THEN '반환값'
WHEN 조건2 THEN '반환값'
.
.
ELSE '반환값'
END
조건문이며 IF문
과 달리 조건을 여러 개 걸 수 있다는 차이가 있다.