코딩테스트/SQL

[SQL][IF][서브쿼리] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기

박소민 2024. 8. 9. 21:38
자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기
 

프로그래머스

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

programmers.co.kr

 

 

 

  • 풀이
    • IF (조건, 맞을경우, 틀릴 경우)
    • 여러번의 대여 기록이 있는 CAR_ID도 결과에는 현재에 맞는 결과 1개만 나와야 함
      • GROUP BY CAR_ID로 묶고
      • CAR_ID가 서브쿼리(기간내를 탐색하는 서브쿼리) 안에 속하는지 여부를 IF문으로 판단
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 1
ORDER BY 1 DESC