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
- 정리
- oracle
- 스프링
- 프런트엔드
- 스프링부트
- BACK-END
- 쿼리
- MySQL
- 백엔드
- web
- 미니정리
- spring
- node.js
- 코드테스트
- 자바스크립트
- SQL
- 알고리즘
- jsp
- 자바
- 서버
- 오라클
- java
- jpa
- 프론트엔드
- 프로그래머스
- 코드 테스트
- Next.js
- JavaScript
- 데이터베이스
- 디자인 패턴
Archives
- Today
- Total
참치코더의 꿈 메모장
Oracle / 프로그래머스 - 자동차 대여 기록에서 장기/단기 대여 구분하기 본문
728x90

|
1
2
3
4
5
6
7
8
9
10
11
12
|
SELECT
HISTORY_ID,
CAR_ID,
TO_CHAR(START_DATE, 'YYYY-MM-DD') AS START_DATE,
TO_CHAR(END_DATE, 'YYYY-MM-DD') AS END_DATE,
CASE
WHEN (END_DATE - START_DATE + 1) >= 30 THEN '장기 대여'
ELSE '단기 대여'
END AS RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE TO_CHAR(START_DATE, 'YYYY-MM') = '2022-09'
ORDER BY HISTORY_ID DESC;
|
cs |
- 해당 테이블에서 대여 시작일이 2022년 9월에 속하는 대여 기록에 대해서 대여 기간이 30일 이상이면
'장기대여' 그렇지 않으면 '단기대여'로 표시하는 컬럼을 추가한 SQL을 작성하는 문제이다.
- FROM절에 해당하는 데이터가 존재하는 테이블을 작성하고
- 조건으로 WHERE절에 2022-9인 값을 가진 값을 추려내는 조건을 작성하였다.
- 다음 SELECT절에 뽑아내야하는 HISTORY_ID, CAR_ID 값을 입력하고나서 날짜 데이터 값이
시간까지 포함해서 전체적으로 나오므로, 날짜 포맷을 년월일만 출력되도록 작성을 하였다.
- 또 장기대여, 단기대여 여부를 표현하기 위해 CASE WHEN THEN END 문을 사용해서 30일 이상이면
장기대여, 단기대여 여부를 표시하였다.(Alias로 RENT_TYPE 표시)
- 마지막으로 HISTORY_ID를 기준으로 내림차순 정렬한다면 문제의 정답을 알수 있다 ^^

728x90
'Oracle' 카테고리의 다른 글
| Oracle / 프로그래머스 - 조건에 맞는 도서와 저자 리스트 출력하기 (0) | 2025.10.13 |
|---|---|
| Oracle / 프로그래머스 - 조건에 부합하는 중고거래 상태 조회하기 (0) | 2025.10.11 |
| Oracle / 프로그래머스 - 루시와 엘라 찾기 (0) | 2025.10.08 |
| Oracle / 프로그래머스 - 재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2025.10.07 |
| Oracle / 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (0) | 2025.10.05 |
Comments