https://school.programmers.co.kr/learn/courses/30/lessons/157343
코드설명
LIKE + ORDER BY 를 활용합니다.
처음에는 'IN'을 통해서 딱 '네비게이션'인 행을 찾았지만, 문제에서 보면 문자열에서 포함되는 값을 검색하는 기능을 구현해야 합니다.
즉, 로직의 핵심은 'OPTION' 컬럼에 '네비게이션' 문자열이 포함된 레코드를 찾아내는 것입니다.
- 테이블 지정: CAR_RENTAL_COMPANY_CAR라는 테이블에서 데이터를 선택합니다. 이 테이블의 별칭으로 CRCC1을 사용합니다.
- 칼럼 선택: 조회할 컬럼으로는 CAR_ID (자동차 식별자), CAR_TYPE (차량 유형), DAILY_FEE (일일 요금), OPTIONS (옵션)을 선택합니다.
- 조건 필터링: WHERE 절을 사용하여 OPTIONS 컬럼 내용 중 '네비게이션'이라는 문자열을 포함하는 레코드만 필터링합니다. 이 때, %네비게이션% 표현을 사용해 '네비게이션'이라는 문자열이 어디에 위치하든 상관없이 해당 문자열을 포함하는 모든 레코드를 선택합니다. '%' 기호는 0개 이상의 임의의 문자열을 의미하는 와일드카드입니다.
- 정렬: ORDER BY 절을 사용해 결과를 CAR_ID 칼럼 값에 따라 내림차순으로 정렬합니다. 즉, CAR_ID 값이 가장 큰 레코드부터 결과에 나타나게 됩니다.
결과적으로 이 쿼리는 '네비게이션' 옵션을 포함하는 차량들을 CAR_ID가 큰 순서로 나열하여 보여주게 됩니다. 이는 사용자가 차량 대여 업체의 차량 중 네비게이션 기능을 원하는 경우, 해당하는 옵션을 갖춘 차량을 쉽게 탐색할 수 있게 해줍니다.
코드
SELECT CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS FROM CAR_RENTAL_COMPANY_CAR WHERE OPTIONS LIKE '%네비게이션%' ORDER BY CAR_ID DESC;
SELECT CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS
FROM CAR_RENTAL_COMPANY_CAR AS CRCC1
WHERE CRCC1.OPTIONS LIKE ('%네비게이션%')
ORDER BY CAR_ID DESC;
SELECT CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS
FROM CAR_RENTAL_COMPANY_CAR AS CRCC
WHERE OPTIONS LIKE '%네비게이션%'
ORDER BY CAR_ID DESC
'SQL > 프로그래머스' 카테고리의 다른 글
[SQL][프로그래머스] 가장 비싼 상품 구하기 - MAX Mysql (0) | 2024.03.25 |
---|---|
[SQL][프로그래머스] 자동차 대여 기록에서 장기/단기 대여 구분하기 - DATE_FORMAT + CASE WHEN END + TIMESTAMPDIFF + DATE_DIFF Mysql (0) | 2024.03.25 |
[SQL][프로그래머스] Python 개발자 찾기 - IN + OR + ORDER BY Mysql (0) | 2024.03.25 |
[SQL][프로그래머스] 잔챙이 잡은 수 구하기 - ISNULL + IS NULL + COUNT Mysql (0) | 2024.03.25 |
[SQL][프로그래머스] 잡은 물고기의 평균 길이 구하기 - IFNULL + AVG + ROUND Mysql (0) | 2024.03.25 |