이 기사에서 사용된 기본 질문 및 데이터 소스는 다음과 같습니다.
프로그래머 코딩 시험 연습,
https://school.programmers.co.kr/learn/challenges?page=1&languages=mysql%2Coracle밝혀
· 이 문제 https://school.programmers.co.kr/learn/courses/30/lessons/157341
■ 질문
문제 설명
아래는 렌터카 회사에서 대여할 수 있는 차량 목록입니다.
CAR_RENTAL_COMPANY_CAR 양식 및 임대 기록 정보 포함 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블.
CAR_RENTAL_COMPANY_CAR 테이블의 구조는 다음과 같습니다.
차량 번호, 자동차 모델, 일일 요금, 옵션 차량 ID, 차종, 일일 렌탈 요금(KRW), 차량 옵션 목록을 각각 나타냅니다.
열 이름 | 유형 | 비어 있는 |
차량 번호 | 정수 | 잘못된 |
자동차 모델 | 변수(255) | 잘못된 |
일일 요금 | 정수 | 잘못된 |
옵션 | 변수(255) | 잘못된 |
“세단”, “SUV”, “밴”, “트럭”, “리무진”이 있습니다.
자동차 옵션 목록은 쉼표(‘,’)로 구분된 키워드 목록(예: ‘열선 시트’, ‘스마트 키’, ‘주차 센서’)과 키워드 유형 ‘주차 센서’ 및 ‘스마트 키’로 구성됩니다.
‘,’ 내비게이션’, ‘통풍시트’, ‘열선시트’, ‘후방카메라’, ‘가죽시트’.
CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블 구조는 다음과 같으며, HISTORY_ID, CAR_ID, START_DATE, END_DATE는 각각 렌터카 기록 ID, 자동차 ID, 렌터카 시작일, 렌터카 종료일을 나타냅니다.
.
열 이름 | 유형 | 비어 있는 |
HISTORY_ID | 정수 | 잘못된 |
차량 번호 | 정수 | 잘못된 |
시작일 | 날짜 | 잘못된 |
종료 날짜 | 날짜 | 잘못된 |
질문
CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 자동차 모델이 ‘sedan’이고 렌탈 기록이 10월에 시작하는 자동차 ID 목록을 출력하는 SQL 문을 작성하십시오.
차량 번호 목록은 중복될 수 없으며 차량 번호에 따라 내림차순으로 정렬됩니다.
■ 설명하다
질문 요청
차종이 “세단” > 열 조건 1인 자동차
10월 임대내역이 있습니다 자동차 ID 출력 목록 > 컬럼 조건 2: 날짜 기간(BETWEEN 절 사용)
차량 ID 목록은 중복될 수 없습니다.
출력 시 DISTINCT를 사용하여 중복을 제거하십시오.
차량 ID 내림차순으로 정렬 > 1로 정렬
SELECT DISTINCT CRH.CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY CRH
LEFT JOIN CAR_RENTAL_COMPANY_CAR CRC
ON CRH.CAR_ID = CRC.CAR_ID
WHERE CRC.CAR_TYPE = '세단'
AND CRH.START_DATE BETWEEN '2022-10-01 00:00:00' AND '2022-10-31 23:59:59'
ORDER BY 1 DESC;