https://school.programmers.co.kr/learn/courses/30/lessons/151137
사용 언어
MySQL
테이블 설명
다음은 어느 자동차 대여 회사에서 대여중인 자동차들의 정보를 담은 CAR_RENTAL_COMPANY_CAR 테이블입니다. CAR_RENTAL_COMPANY_CAR 테이블은 아래와 같은 구조로 되어있으며, CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS 는 각각 자동차 ID, 자동차 종류, 일일 대여 요금(원), 자동차 옵션 리스트를 나타냅니다.
자동차 종류는 '세단', 'SUV', '승합차', '트럭', '리무진' 이 있습니다. 자동차 옵션 리스트는 콤마(',')로 구분된 키워드 리스트(옵션 리스트 값 예시: '열선시트', '스마트키', '주차감지센서')로 되어있으며, 키워드 종류는 '주차감지센서', '스마트키', '네비게이션', '통풍시트', '열선시트', '후방카메라', '가죽시트' 가 있습니다.
요구사항
1. 옵션에 '통풍시트', '열선시트', '가죽시트' 중 하나 이상 포함
2. 자동차 종류별 대수(자동차 수의 컬럼명은 CARS 지정)
3. 자동차 종류 오름차순 정렬
풀이
1. WHERE에서 LIKE와 OR로 조건식
(REGEXP로 정규식 사용도 가능)
2. GROUP BY로 자동차 종류를 그룹화 + COUNT하는 컬럼 생성
3. ORDER BY에서 자동차 종류 정렬 (오름차순(ASC)는 생략가능)
<LIKE와 OR을 사용한 조건식>
SELECT CAR_TYPE
, COUNT(*) AS CARS
FROM CAR_RENTAL_COMPANY_CAR
WHERE
OPTIONS LIKE('%통풍시트%') OR
OPTIONS LIKE('%열선시트%') OR
OPTIONS LIKE('%가죽시트%')
GROUP BY CAR_TYPE
ORDER BY CAR_TYPE
;
<REGEXP를 사용한 정규 표현식>
SELECT CAR_TYPE
, COUNT(*) AS CARS
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS REGEXP '통풍시트|열선시트|가죽시트'
GROUP BY CAR_TYPE
ORDER BY CAR_TYPE
;'프로그래머스 > SQL' 카테고리의 다른 글
| [Lv.2] 조건에 맞는 도서와 저자 리스트 출력하기 (0) | 2025.02.05 |
|---|---|
| [Lv.3] 오랜 기간 보호한 동물(1) (0) | 2025.01.31 |
| [Lv.2] 카테고리 별 상품 개수 구하기 (0) | 2025.01.31 |
| [Lv.2] 조건에 맞는 아이템들의 가격의 총합 구하기 (0) | 2025.01.31 |
| [Lv.2] 가격이 제일 비싼 식품의 정보 출력하기 (0) | 2025.01.31 |