Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Tags more
Archives
Today
Total
관리 메뉴

luke

[프로그래머스] - 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (MySQL) 본문

DB/프로그래머스(MySQL)

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

luke-king 2025. 8. 24. 14:06

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

 

 

 

 

 

 

 

문제.


 

 

 

 

 

 

 

풀이.


-- 1번째 풀이
SELECT CAR_TYPE, COUNT(OPTIONS) AS CARS
FROM CAR_RENTAL_COMPANY_CAR
WHERE (OPTIONS LIKE '%통풍시트%') OR (OPTIONS LIKE '%열선시트%') OR (OPTIONS LIKE '%가죽시트%')
GROUP BY CAR_TYPE
ORDER BY CAR_TYPE

-- 2번째 풀이
SELECT CAR_TYPE, COUNT(OPTIONS) AS CARS
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS REGEXP '통풍시트|열선시트|가죽시트'
GROUP BY CAR_TYPE
ORDER BY CAR_TYPE

이번 문제는 프로그래머스 '자동차 종류별 특정 옵션이 포함된 자동차 수 구하기' MySQL 문제다.

문제에서 요점은 OPTIONS 컬럼에 있는 문장 값이 있는데 그중 특정 값이 들어가는 값들만 카운트하는 문제다.

이번에는 2개의 방식 풀이가 있는데 하나씩 바로 풀이 해보겠다.

 

[1번째 풀이]

 

1. 조건에 주어진 특정 값이 OPTIONS과 같을 때 카운트 하기에 COUNT(OPTIONS) AS CARS를 해준다.

 

2. 이제 조건절에서 총 3가지의 옵션 즉 통풍시트, 열선시트, 가죽시트 값이 들어갈 경우 카운트를 하기에 LIKE 문과 OR을 사용해주면 그 조건에 맞게 카운트하게 된다.

 

3. CAR_TYPE으로 그룹을 지어주고 마지막으로 오름차순 정렬 해주면 끝이다.

 

 

[2번째 풀이]

 

1. 앞에 1번째 풀이와 같지만 WHERE 절에서 LIKE문을 사용한 게 아닌 REGEXP를 사용한다.

 

2. REGEXP 함수는 흔히 자바에서도 사용하는 정규식 표현이라고 이해하면 좋다.

 

3. LIKE절을 여러 개 사용할 때 편리하다. 즉 WHERE '컬럼' REGEXP 'A|B|C'를 할 경우 컬럼 값이 A, B, C인 값들인 것만 카운트한다.