728x90
반응형
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제 설명
반응형
2. 풀이과정
해당 문제는 '통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 포함된 자동차가 자동차 종류 별로 몇 대인지 조회하는 문제이다.
옵션 값이 들어있는 컬럼은 여러 옵션이 문자열로 나열되어 있다.
나열된 문자열에서 각 '통풍시트', '열선시트', '가죽시트'가 포함되어 있는지 확인할 때는 LIKE 문을 활용하면 된다.
컬럼명 LIKE '찾을 문자열' 형식으로 작성하여 컬럼에서 해당 문자열이 포함되어 있는지 확인하면 된다.
찾을 문자열은 각 옵션 이름의 앞 뒤에 % 문자를 넣어 문자열 어디에도 해당 옵션이 포함되어 있으면 되도록 작성한다.
'통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션만 포함되어 있으면 되므로 각 옵션을 OR로 연결하여 하나만 참이어도 전체가 참이 되도록 작성한다.
자동차 종류 별로 몇 대인지 조회해야 하므로 GROUP BY 절을 통해 자동차 종류를 기준으로 그룹을 만들어준다.
자동차 수에 대한 컬럼명은 CARS로 지정하고 최종 결과는 자동차 종류를 기준으로 오름차순 정렬하여 조회한다.
- 자동차 종류와 만든 그룹별 자동차 수를 COUNT() 함수로 추출한 뒤 CARS 컬럼명을 지정여 조회한다. 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
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
반응형
'프로그래머스 > MySQL' 카테고리의 다른 글
[프로그래머스] 루시와 엘라 찾기 - MySQL - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.10.03 |
---|---|
[프로그래머스] 성분으로 구분한 아이스크림 총 주문량 - MySQL - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.10.02 |
[프로그래머스] 상품 별 오프라인 매출 구하기 - MySQL - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.09.30 |
[프로그래머스] 조건에 맞는 도서와 저자 리스트 출력하기 - MySQL - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.09.29 |
[프로그래머스] 입양 시각 구하기(1) - MySQL - 우당탕탕 개발자 되기 프로젝트 (2) | 2024.09.27 |
[프로그래머스] 중성화 여부 파악하기 - MySQL - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.09.25 |
[프로그래머스] 고양이와 개는 몇 마리 있을까 - MySQL - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.09.24 |
[프로그래머스] 진료과별 총 예약 횟수 출력하기 - MySQL - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.09.23 |