본문 바로가기
SQL

[프로그래머스] MYSQL | 대여 기록이 존재하는 자동차 리스트 구하기 (LV.3)

by kumanchii 2025. 3. 4.

 

SQL 활용 능력 유지를 위한 아카이빙
틀린 내용이 있을 수 있습니다. 언제든 정정 댓글 환영입니다!

 

대여 기록이 존재하는 자동차 리스트 구하기 - String, Date

 

 


 

 

문제 조건

 

자동차 종류가 '세단'인 자동차들 중 10월에 대여한 자동차 ID 리스트를 출력하기.

단, ID 리스트는 중복이 없어야 하고, 자동차 ID 기준 내림차순 정렬

 

 

 

프로그래머스

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

programmers.co.kr

 

 


 

 

문제 풀이 및 정답

 

SELECT DISTINCT(C.CAR_ID) AS CAR_ID
FROM CAR_RENTAL_COMPANY_CAR C
INNER JOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY H ON C.CAR_ID = H.CAR_ID
WHERE C.CAR_TYPE= '세단' AND MONTH(H.START_DATE)=10
ORDER BY C.CAR_ID DESC

 

 

  • 중복되지 않는 자동차 아이디(CAR_ID) 조회를 위해 DISTINCT 사용
  • 대여 중인 자동차들의 정보(CAR_RENTAL_COMPANY_CAR) 테이블과 자동차 대여 기록 정보( CAR_RENTAL_COMPANY_RENTAL_HISTORY) 테이블 간 연결을 위해 기준 컬럼 CAR_ID를 활용해 INNER JOIN 사용 (JOIN도 무방)
  • 자동차 유형을 '세단'으로 필터링 - 2가지 경우의 수
    • C.CAR_TYPE = '세단'
    • C.CAR_TYPE LIKE '세단'
  • 대여 시작 날짜가 '10월'인 데이터로 필터링 - 2가지 경우의 수
    • MONTH(H.START_DATE) = 10
    • DATE_FORMAT(H.START_DATE, %m) = '10'
  • ORDER BY C.CAR_ID DESC로 자동차 ID 기준 내림차순 정렬