본문 바로가기
프로그래머스/MySQL

[프로그래머스] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 - MySQL - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2024. 9. 28.
728x90
반응형

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 문제 설명

반응형

2. 풀이과정

해당 문제는 '통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 포함된 자동차가 자동차 종류 별로 몇 대인지 조회하는 문제이다.

옵션 값이 들어있는 컬럼은 여러 옵션이 문자열로 나열되어 있다.

나열된 문자열에서 각 '통풍시트', '열선시트', '가죽시트'가 포함되어 있는지 확인할 때는 LIKE 문을 활용하면 된다.

컬럼명 LIKE '찾을 문자열' 형식으로 작성하여 컬럼에서 해당 문자열이 포함되어 있는지 확인하면 된다.

찾을 문자열은 각 옵션 이름의 앞 뒤에 % 문자를 넣어 문자열 어디에도 해당 옵션이 포함되어 있으면 되도록 작성한다.

'통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션만 포함되어 있으면 되므로 각 옵션을 OR로 연결하여 하나만 참이어도 전체가 참이 되도록 작성한다.

자동차 종류 별로 몇 대인지 조회해야 하므로 GROUP BY 절을 통해 자동차 종류를 기준으로 그룹을 만들어준다.

자동차 수에 대한 컬럼명은 CARS로 지정하고 최종 결과는 자동차 종류를 기준으로 오름차순 정렬하여 조회한다.

 

  1. 자동차 종류와 만든 그룹별 자동차 수를 COUNT() 함수로 추출한 뒤 CARS 컬럼명을 지정여 조회한다. SELECT CAR_TYPE, COUNT(*) AS CARS
  2. 값을 조회할 테이블을 지정한다. FROM CAR_RENTAL_COMPANY_CAR
  3. 옵션 컬럼의 값에서 '통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 포함된 값만 조회한다. WHERE OPTIONS LIKE '%통풍시트%' OR OPTIONS LIKE '%열선시트%' OR OPTIONS LIKE '%가죽시트%'
  4. 자동차 종류 별로 몇 대인지 조회해야 하므로 자동차 종류를 기준으로 그룹을 만들어준다. GROUP BY CAR_TYPE
  5. 최종 결과는 자동차 종류를 기준으로 오름차순 정렬하여 조회한다. ORDER BY CAR_TYPE
728x90

3. 소스코드

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
728x90
반응형