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

☑️ 문제

프로그래머스 151137

☑️ 풀이

첫 번째 풀이 (실패)

SELECT CAR_TYPE, COUNT(*) AS 'CARS'
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS IN ('통풍시트', '열선시트', '가죽시트')
GROUP BY CAR_TYPE
ORDER BY CAR_TYPE
  • OPTIONS 컬럼은 여러 옵션이 구분된 문자열로 저장되어 있기 때문에 WHERE OPTIONS IN ('통풍시트', '열선시트', '가죽시트') 를 사용할 수 없다.
    • 옵션으로 ‘통풍시트’만 있거나, ‘열선시트’만 있어야 사용 가능하다.

두 번째 풀이 (성공)

SELECT CAR_TYPE, COUNT(*) AS 'CARS'
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS LIKE '%시트%'
GROUP BY CAR_TYPE
ORDER BY CAR_TYPE
  • ‘%시트%’‘시트’라는 문자열을 포함하는 모든 값을 찾는 조건이다.
  • OPTIONS 컬럼에서 시트라는 단어가 포함된 모든 값을 찾을 수 있다.
  • 처음에 ‘%시트’ 로 했는데 실패했다.
    • 이것도 마찬가지로 OPTIONS는 여러 옵션이 콤마로 구분된 문자열로 저장되어 있기 때문에 ‘시트’가 끝에 위치한 옵션만을 찾는다면 처음이나 중간에 시트가 포함된 옵션은 제외된다.

© 2021. All rights reserved.

yaejinkong의 블로그