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

kiki·2024년 1월 8일
0

프로그래머스

목록 보기
48/79

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/151137

문제 설명

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

1차 시도 - 통과

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;

LIKE을 이용해 각 옵션이 포함되어있는지 확인하고 각각을 OR로 연결

2차 시도 - 통과

SELECT CAR_TYPE, COUNT(*) AS CARS FROM CAR_RENTAL_COMPANY_CAR
    WHERE OPTIONS REGEXP "열선시트|통풍시트|가죽시트"
    GROUP BY CAR_TYPE
    ORDER BY CAR_TYPE;

저렇게 LIKE를 OR로 연결하다보면 너무 지저분해지니 REGEXP를 이용하면 깔끔!
이전에 LIKE 배웠을 때 정리해뒀었는데 까먹었다 ㅎㅎ
이젠 사용해봤으니 까먹지말자!

정리

  • REGEXP: 특정 문자를 포함하는지 확인할 때, 여러개 문자 중 하나 이상을 포함하는지 확인하고싶다면 REGEXP 연산자를 사용하면 된다.

0개의 댓글