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
'Code Kata > [SQL] Code Kata' 카테고리의 다른 글
[SQL] 프로그래머스 Lv.3 조건에 맞는 사용자 정보 조회하기 (0) | 2024.01.24 |
---|---|
[SQL] 프로그래머스 Lv.3 오랜 기간 보호한 동물(1) (0) | 2024.01.18 |
[SQL] 프로그래머스 Lv.2 입양 시각 구하기(1) (0) | 2024.01.10 |
[SQL] 프로그래머스 Lv.1 조건에 맞는 회원수 구하기 (0) | 2024.01.10 |
[SQL] 프로그래머스 Lv.2 DATETIME에서 DATE로 형 변환 (0) | 2024.01.09 |