꿈꾸는 개발자의 블로그
[프로그래머스] Oracle - (SQL 고득점 Kit) GROUP BY 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 본문
Algorithm/Programmers
[프로그래머스] Oracle - (SQL 고득점 Kit) GROUP BY 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기
aldrn29 2023. 2. 21. 14:17문제
CAR_RENTAL_COMPANY_CAR 테이블에서 1) '통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 포함된 자동차가 2) 자동차 종류 별로 3) 몇 대인지 출력하는 SQL문을 작성해주세요. 이때 자동차 수에 대한 컬럼명은 CARS로 지정하고, 결과는 자동차 종류를 기준으로 오름차순 정렬해주세요.
문제 풀이
- 여러 옵션들 중 하나 이상이 포함되었는지 확인하기 위하여 REGEXP_LIKE 구문으로 WHERE 조건을 건다.
- 자동차 종류 별로 조회하기 위하여 GROUP BY로 묶는다.
- 위의 조건에 해당하는 자동차가 몇 대인지 count 함수로 조회한다.
- REGEXP_LIKE 구문을 사용한 이유 : 처음엔 아래 주석한 코드처럼 사용하려 했지만, 되지 않았고.. 결국 LIKE를 여러개 사용하여 코드가 길어졌다. 그러다 정규식을 사용한 다중 LIKE 연산자를 알게 되었고, 한줄로 간단한 쿼리 작성이 가능했다.
-- WHERE OPTIONS LIKE '%통풍시트%' || '%열선시트%' || '%가죽시트%'
-- WHERE OPTIONS LIKE '%통풍시트%' OR '%열선시트%' OR '%가죽시트%'
WHERE OPTIONS LIKE '%통풍시트%'
OR OPTIONS LIKE '%열선시트%'
OR OPTIONS LIKE '%가죽시트%'
전체 코드
SELECT CAR_TYPE, count(*) AS CARS
FROM CAR_RENTAL_COMPANY_CAR
WHERE REGEXP_LIKE(OPTIONS, '통풍시트|열선시트|가죽시트')
GROUP BY CAR_TYPE
ORDER BY 1
728x90
728x90
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스] Oracle - (SQL 고득점 Kit) GROUP BY 고양이와 개는 몇 마리 있을까 (0) | 2023.02.21 |
---|---|
[프로그래머스] Oracle - (SQL 고득점 Kit) GROUP BY 저자 별 카테고리 별 매출액 집계하기 (0) | 2023.02.21 |
[프로그래머스] Oracle - (SQL 고득점 Kit) GROUP BY 성분으로 구분한 아이스크림 총 주문량 (0) | 2023.02.21 |
[프로그래머스] Oracle - (SQL 고득점 Kit) GROUP BY 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 (0) | 2023.02.21 |
[프로그래머스] Oracle - (SQL 고득점 Kit) GROUP BY 즐겨찾기가 가장 많은 식당 정보 출력하기 (0) | 2023.02.21 |
Comments