SELECT CAR_TYPE, COUNT(CAR_ID)CARS
FROM CAR_RENTAL_COMPANY_CAR
WHERE 1=1
AND OPTIONS like "%통풍시트%"
or OPTIONS like "%열선시트%"
or OPTIONS like "%가죽시트%"
GROUP BY 1
ORDER BY 1
CAR_RENTAL_COMPANY_CAR 테이블은 아래와 같은 구조로 되어있으며, CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS 는 각각 자동차 ID, 자동차 종류, 일일 대여 요금(원), 자동차 옵션 리스트를 나타냄
자동차 종류는 '세단', 'SUV', '승합차', '트럭', '리무진' 이 있다. 자동차 옵션 리스트는 콤마(',')로 구분된 키워드 리스트(옵션 리스트 값 예시: '열선시트', '스마트키', '주차감지센서')로 되어있으며, 키워드 종류는 '주차감지센서', '스마트키', '네비게이션', '통풍시트', '열선시트', '후방카메라', '가죽시트' 가 있다
문제
CAR_RENTAL_COMPANY_CAR 테이블에서 '통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 포함된 자동차가 자동차 종류 별로 몇 대인지 출력하는 SQL문을 작성 후 자동차 수에 대한 컬럼명은 CARS로 지정하고, 결과는 자동차 종류를 기준으로 오름차순 정렬
OPTIONS에 여러 값이 들어 있고 그 중 특정한 값을 포함하는 데이터를 추출하는 문제로 보인다. 그런경우 그냥 크게 고민없이 like 로 해결하면된다. 위의 조건에 '통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 들어가야 한다해서 일부러 or 조건으로 하나하나 다 기입해서 넣었지만 사실 or 없이 '시트' 만 써서 처리해도 무방하다. 해당 조건으로 데이터 전체값을 필터링 한 후 자동차 타입을 기준으로 GROUP 처리 한 후 유니크한 자동차 값인 CAR_ID 기준으로 COUNT 후 정렬 처리 하면 요청하는 값을 마무리 처리 할 수있다.
출제되는 아직까지 출제 되는 문제는 쉬우나 실수해서 놓치는게 종종 있어서 가끔 틀렸다고 나오는데 시험에서는 그런일이 없어야 할 것 같다 ㅠ
'SQL > MY SQL 문제 풀이(프로그래머스)' 카테고리의 다른 글
[MYSQL] PROGRAMMERS_조건에 맞는 도서와 저자 리스트 출력하기 (0) | 2024.02.21 |
---|---|
[MYSQL] PROGRAMMERS_상품 별 오프라인 매출 구하기 (0) | 2024.02.21 |
[MYSQL] PROGRAMMERS_입양 시각 구하기(1) (0) | 2024.02.21 |
[MYSQL] PROGRAMMERS_진료과별 총 예약 횟수 출력하기 (0) | 2024.02.21 |
[MYSQL] PROGRAMMERS_고양이와 개는 몇 마리 있을까 (0) | 2024.02.21 |