Notice
Recent Posts
Recent Comments
Link
250x250
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- spring
- 프런트엔드
- 알고리즘
- oracle
- 디자인 패턴
- 데이터베이스
- BACK-END
- node.js
- jsp
- web
- 정리
- 스프링부트
- 코드 테스트
- 백엔드
- jpa
- 서버
- SQL
- Next.js
- JavaScript
- 자바스크립트
- 미니정리
- 코드테스트
- 프론트엔드
- 쿼리
- 오라클
- 스프링
- 자바
- java
- 프로그래머스
- MySQL
Archives
- Today
- Total
참치코더의 꿈 메모장
Oracle / 프로그래머스 - 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 본문
728x90

|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
SELECT CAR_ID, CASE
WHEN MAX(
CASE
WHEN START_DATE <= DATE '2022-10-16'
AND END_DATE >= DATE '2022-10-16'
THEN 1 ELSE 0
END
) = 1
THEN '대여중'
ELSE '대여 가능'
END AS AVAILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
ORDER BY CAR_ID DESC;
|
cs |
- CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 2022년 10월 16일에 대여 중인 자동차의 경우
'대여중' 이라고 표시하고, 대여 중이지 않은 자동차의 경우 '대여 가능'을 표시하는 컬럼을 추가하여 자동차 ID와
AVAILABILITY 리스트를 출력하는 SQL문을 작성하는 문제이다.
- 일단 참조하려고 하는 데이터가 있는 테이블인 CAR_RENTAL_COMPANY_RENTAL_HISTORY를 from절에 두고
car_id를 group by로 묶어서 값을 구할 수 있도록 한다.
- 다음 select 문에 car_id, case when then end 문을 사용하여 조건을 주어서 일단 안쪽 case 문에 date값이 2022-10-16
인 데이터 값들은 값을 1 나머지는 0을 주도록 만들었다.
- 해당 데이터를 바깥 case문으로 1인지 비교하며 만약 값이 1과 같다면 대여중으로 표시하고, 아니라면 대여가능으로
표시하여 값을 얻을 수 있다.
- 마지막으로 CAR_ID 값으로 내림차순 정렬한다면 정답을 얻을 수 있다.

728x90
'Oracle' 카테고리의 다른 글
| Oracle / 프로그래머스 - 카테고리 별 도서 판매량 집계하기 (0) | 2026.02.08 |
|---|---|
| Oracle / 프로그래머스 - 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2026.02.05 |
| Oracle / 프로그래머스 - 대여 기록이 존재하는 자동차 리스트 구하기 (0) | 2026.02.01 |
| ORACLE / 조건에 맞는 사용자와 총 거래금액 조회하기 - 프로그래머스 (0) | 2026.01.27 |
| Oracle / 프로그래머스 - 조회수가 가장 많은 중고거래 게시판의 첨부 파일 조회하기 (0) | 2026.01.26 |
Comments