본문 바로가기

Code Kata/[SQL] Code Kata

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

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

 

LIKE 함수로 조건 필터링을 하면 쿼리문의 길이가 길어지므로

정규표현식 RLIKE(=REGEXP)를 사용하여 문제에서 요구하는 조건을 필터링해주었다.

--MySQL

SELECT car_type, COUNT(car_id) CARS
fROM car_rental_company_car
WHERE options RLIKE '통풍시트|열선시트|가죽시트'
GROUP BY 1
ORDER BY 1

 

Oracle에선 REGEXP_LIKE 정규표현식을 사용해서 필터링이 가능하다.

--Oracle

SELECT car_type, COUNT(car_id) cars
FROM car_rental_company_car
WHERE REGEXP_LIKE(options, '통풍시트|열선시트|가죽시트')
GROUP BY car_type
ORDER BY car_type

 

MySQL의 정규식 REGEXP는 컬럼명 REGEXP '검색 대상' 형태로 입력하고,

Oracle의 정규식 REGEXP_LIKE는 REGEXP_LIKE(컬럼명, '검색 대상') 형태로 입력한다.

 

 

프로그래머스

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

programmers.co.kr