반응형
문제
CAR_RENTAL_COMPANY_CAR 테이블에서 '통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 포함된 자동차가 자동차 종류 별로 몇 대인지 출력하는 SQL문을 작성해주세요. 이때 자동차 수에 대한 컬럼명은 CARS로 지정하고, 결과는 자동차 종류를 기준으로 오름차순 정렬해주세요.
구조
CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS 는 각각 자동차 ID, 자동차 종류, 일일 대여 요금(원), 자동차 옵션 리스트를 나타냅니다.
예시
처음에 작성한 쿼리
-- 코드를 입력하세요
select
car_type,
count(options) cars
from car_rental_company_car
where 1=1
or options like '%통풍시트%'
or options like '%열선시트%'
or options like '%가죽시트%'
group by car_type
order by car_type
틀린 이유
1=1을 써버리게 되면 뒤의 세가지를 모두 가지고 있지 않더라도 포함이 되기 때문입니다. 1=1을 지워줘야 합니다.
수정한 쿼리
-- 코드를 입력하세요
select
car_type,
count(options) cars
from car_rental_company_car
where options like '%통풍시트%'
or options like '%열선시트%'
or options like '%가죽시트%'
group by car_type
order by car_type
1=1을 지워줌으로써 셋을 제외한 경우는 필터링 돼서 포함이 안되게 해줍니다.
Group By car_type으로 차종을 기준으로 묶어주고 Order By car_type으로 차종을 기준으로 정렬을 해줍니다.
문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/151137
반응형
'코딩테스트 > Oracle DB' 카테고리의 다른 글
[Oracle] 성분으로 구분한 아이스크림 총 주문량 (프로그래머스) (0) | 2023.12.21 |
---|---|
[Oracle] 조건에 맞는 도서와 저자 리스트 출력하기 (프로그래머스) (1) | 2023.12.21 |
[Oracle] 조건에 부합하는 중고거래 상태 조회하기 ( 프로그래머스 ) (0) | 2023.12.20 |
[Oracle] 자동차 평균 대여 기간 구하기 ( 23-12-20 ) (0) | 2023.12.20 |
[Oracle, Oracle DB] 이름이 없는 동물의 아이디 ( 23-12-19 ) (0) | 2023.12.19 |