본문 바로가기

알고리즘 공부 및 문제 풀이/프로그래머스(PRO)

[pro] 프로그래머스 SQL level3 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 - GROUP BY

[문제]

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

 

프로그래머스

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

programmers.co.kr

 

[풀이]

IF 조건문을 이용한다.

 

IF(조건문, 참일 때의 값, 거짓일 때의 값)

 

그 외의 조건문

- IFNULL(column_name, value)

- ISNULL(column_name, value)

- CASE WHEN value1 THEN result1 WHEN value2 THEN result2 … [ELSE else_result] END

 

[코드]

 

SELECT CAR_ID, 
IF (CAR_ID IN (SELECT CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE '2022-10-16' BETWEEN START_DATE AND END_DATE), '대여중', '대여 가능') AS AVAILABILITY 
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY 
GROUP BY CAR_ID 
ORDER BY CAR_ID DESC;