본문 바로가기

반응형

문제

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

반응형
댓글