Road to Data Scientist

[프로그래머스] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 Lv.2 본문

코딩 테스트/SQL

[프로그래머스] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 Lv.2

ShazelP 2024. 6. 9. 17:53

자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기

 

CAR_RENTAL_COMPANY_CAR 테이블

- CAR_ID: 자동차 ID

- CAR_TYPE: 자동차 종류

- DAILY_FEE: 일일 대여 요금 (원)

- OPTIONS: 자동차 옵션 리스트

 

문제

CAR_RENTAL_COMPANY_CAR 테이블에서 '통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 포함된 자동차가 자동차 종류 별로 몇 대인지 출력하는 SQL문을 작성해주세요. 이때 자동차 수에 대한 컬럼명은 CARS로 지정하고, 결과는 자동차 종류를 기준으로 오름차순 정렬해주세요.

 

정답 예시

 

코드

SELECT CAR_TYPE, COUNT(*) AS CARS
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS REGEXP '통풍시트|열선시트|가죽시트'
GROUP BY CAR_TYPE
ORDER BY CAR_TYPE

 

설명

1. CAR_RENTAL_COMPANY_CAR 테이블에서

2. CAR_TYPE과 조건에 맞는 총개수 COUNT(*)를 추출하는데

3. 조건을 주기 위해 WHERE OPTIONS REGEXP '통풍시트|열선시트|가죽시트' 로 설정

4. 총 개수를 CAR_TYPE 기준으로 세야하기 때문에 GROUP BY CAR_TYPE

5. 총 결과를 ORDER BY CAR_TYPE 으로 정렬

 

+ REGEXP

- 조건에 의하면 '통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 포함된 데이터를 원한다.

- LIKE 를 사용하여 작성하면 OPTIONS LIKE '%통풍시트%' 와 같이 LIKE 를 3번 사용해서 사용가능하다.

- 이를 간단하게 표현하기 위해 REGEXP 를 LIKE 처럼 사용하고 OR을 의미하는 | 를 사용하여 표현

 

출처

https://school.programmers.co.kr/learn/courses/30/lessons/151137

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr