개발/SQL

프로그래머스SQL_자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기

송디 2024. 5. 16. 10:43

출처 : 프로그래머스

■ 사용 문법 

GROUP BY

 

■ 사용 방법 

1. start_date가 2016-10-16보다 작거나 같고(AND) end_date이 2016-10-16보다 같거나 큰 것을 필터링 해준다. 

2. CAR_ID로 GROUP BY 한다. 

3. 위 쿼리를 서브쿼리로 하여 SELECT 문에 넣어준다. 이 때 CASE 문을 사용하여 위 쿼리에 해당하는 것들은 '대여중' 그 이외의 것들은 '대여 가능'으로 하여 AVAILABLITY 칼럼을 만든다. 

4. CAR_ID로 GROUP BY 한다. 

 

■ 코드 

-- 코드를 입력하세요
SELECT CAR_ID,
( CASE
 WHEN CAR_ID IN (SELECT CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE START_DATE <= DATE("2022-10-16") AND END_DATE >= DATE("2022-10-16") 
GROUP BY CAR_ID
ORDER BY CAR_ID) THEN "대여중"
 else "대여 가능"
END) AS AVAILABLITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
ORDER BY CAR_ID DESC

 

 

728x90