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

2025. 6. 14. 18:06·SQL/프로그래머스

📌 문제링크

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


📌 문제풀이

select car_id,
    case
        when max(case 
                 when '2022-10-16' between start_date and end_date then 1 
                 else 0 end) = 1 then '대여중'
        else '대여 가능'
    end as availabilty
from CAR_RENTAL_COMPANY_RENTAL_HISTORY
group by 1
order by 1 desc

📖 NOTE

  • max함수를 쓴 이유는 아래와 같음
    • 하나의 car_id당 여러 날짜의 대여 정보가 포함되어 있음  (ex> car_id : 1, start/end : 22/10/01~22/10/02, 22/10/16~22/10/17)
    • 따라서 먼저 2022-10-16 이 start_date와 end_date 사이에 포함되어 있으면 1, 아니면 0이라는 변수를 생성 
    • 이때 '1이 반환된다면 2022-10-16 에 이미 대여예정이 되어 있다' 라는 것을 의미 하므로
    • max값이 1 -> '대여중', 0 -> '대여 가능' 으로 availabilty값으로 설정

 

저작자표시 (새창열림)

'SQL > 프로그래머스' 카테고리의 다른 글

[MySQL] [프로그래머스 level 3] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기  (0) 2025.06.18
[MySQL] [프로그래머스 level 3] 업그레이드 할 수 없는 아이템 구하기  (0) 2025.06.17
[MySQL] [프로그래머스 level 4] FrontEnd 개발자 찾기  (0) 2025.06.12
[MySQL] [프로그래머스 level 4] 언어별 개발자 분류하기  (2) 2025.06.04
[MySQL] [프로그래머스 level 3] 부서별 평균 연봉 조회하기  (0) 2025.06.04
'SQL/프로그래머스' 카테고리의 다른 글
  • [MySQL] [프로그래머스 level 3] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기
  • [MySQL] [프로그래머스 level 3] 업그레이드 할 수 없는 아이템 구하기
  • [MySQL] [프로그래머스 level 4] FrontEnd 개발자 찾기
  • [MySQL] [프로그래머스 level 4] 언어별 개발자 분류하기
ღ유닝이ღ
ღ유닝이ღ
🗃️이모저모 공부기록함🗃️
  • ღ유닝이ღ
    ღ yuni_world ღ
    ღ유닝이ღ
  • 전체
    오늘
    어제
    • 분류 전체보기 (102)
      • Python (8)
      • JAVA (0)
      • 알고리즘 (41)
        • 알고리즘 개념(이코테) (8)
        • 백준 (20)
        • 프로그래머스 (13)
      • SQL (44)
        • 프로그래머스 (39)
        • Tip (5)
      • Database (2)
      • AI (1)
      • 일상(자격증,어학 등) (6)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
ღ유닝이ღ
[MySQL] [프로그래머스 level 3] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기
상단으로

티스토리툴바