[SQL] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기(프로그래머스)
2024. 4. 30. 22:26ㆍ코딩 테스트
문제


개념
- 조건문
- IF(조건문, 조건문이 참일 때 값, 조건문이 거짓일 때 값)
- CASE WHEN 조건문 THEN 조건문이 참일 때 값 ELSE 조건문이 거짓일 때 값 END
- 조건문 뒤에 AS를 써서 조건문 값에 대한 컬럼을 생성
- 각 자동차 ID에 따라 해당 날짜에 한 번이라도 대여중이었던적이 있는지를 알아보는 문제임을 유념
- SUM(IF(조건문, 1, 0)) = 0 을 사용해서 한 번이라도 1(대여중)이 되는 조건을 확인하기
- GROUP BY를 통해 각 자동차 ID에 따라 확인
정답
SELECT CAR_ID,
IF (SUM(IF('2022-10-16' BETWEEN START_DATE AND END_DATE, 1, 0)) = 0, '대여 가능','대여중')
AS AVAILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
ORDER BY 1 DESC'코딩 테스트' 카테고리의 다른 글
| [SQL] 자동차 평균 대여 기간 구하기(프로그래머스) (0) | 2024.04.30 |
|---|---|
| [SQL] 식품분류별 가장 비싼 식품의 정보 조회하기(프로그래머스) (0) | 2024.04.30 |
| [SQL] 재구매가 일어난 상품과 회원 리스트 구하기(프로그래머스) (1) | 2024.04.26 |
| [SQL] 한 해에 잡은 물고기 수 구하기(프로그래머스) (1) | 2024.04.26 |
| [SQL] 잡은 물고기 중 가장 큰 물고기의 길이 구하기(프로그래머스) (0) | 2024.04.26 |