1. 문제
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
options 컬럼에 '통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 포함된 자동차가 자동차 종류 별로 몇 대인지 출력하는 문제. 자동차 수 컬럼명은 CARS로 지정하고, 결과는 자동차 종류를 기준으로 오름차순 정렬.
2. 풀이
options 컬럼 값에 특정 옵션이 있는지 확인해야 하므로 LIKE 연산자나 REGEXP_LIKE( ) 함수를 사용해야 한다.
✏️ 정답 쿼리 1)
SELECT car_type, COUNT(car_id) AS cars
FROM car_rental_company_car
WHERE options LIKE '%통풍시트%'
OR options LIKE '%열선시트%'
OR options LIKE '%가죽시트%'
GROUP BY car_type
ORDER BY car_type
=> 3개의 옵션 중 하나라도 있으면 되는 것이므로 OR 연산자를 사용하여 LIKE 연산자를 여러개 붙여서 사용할 수 있다.
✏️ 정답 쿼리 2)
SELECT car_type, COUNT(car_id) AS cars
FROM car_rental_company_car
WHERE REGEXP_LIKE(options, '통풍시트|열선시트|가죽시트')
GROUP BY car_type
ORDER BY car_type
=> REGEXP_LIKE(컬럼명, '옵션1|옵션2|옵션3') 형태로 사용할 수 있다.
'[Programmers] > - SQL' 카테고리의 다른 글
[Oracle][Programmers] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2025.05.28 |
---|---|
[Oracle][Programmers] 자동차 대여 기록에서 대여중/대여 가능 여부 구분하기 (1) | 2025.05.27 |
[Oracle][Programmers] 자동차 평균 대여 기간 구하기 (0) | 2025.05.24 |
[Oracle][Programmers] 조건에 부합하는 중고거래 상태 조회하기(Lv 2) (0) | 2025.05.24 |
[Oracle][Programmers] 여러 기준으로 정렬하기 (0) | 2025.05.24 |