[문제]
CAR_RENTAL_COMPANY_CAR 테이블에서 '통풍시트', '열선시트', '가죽시트' 중 하나 이상 옵션이 포함된 자동차가 종류 별로 몇 대인지 출력하는 SQL 쿼리 작성하기, 수에 대한 컬럼은 'CARS', 오름차순 정렬
CAR_IDCAR_TYPEDAILY_FEEOPTIONS
1 | 세단 | 16000 | 가죽시트,열선시트,후방카메라 |
2 | SUV | 14000 | 스마트키,네비게이션,열선시트 |
3 | SUV | 22000 | 주차감지센서,후방카메라 |
4 | 트럭 | 35000 | 주차감지센서,네비게이션,열선시트 |
5 | SUV | 16000 | 가죽시트,네비게이션,열선시트,후방카메라,주차감지센서 |
[풀이]
SELECT CAR_TYPE, COUNT(CAR_ID)
FROM CAR_RENTAL_COMPANY_CAR
WHERE INSTR(OPTIONS, '통풍시트') > 0 OR
INSTR(OPTIONS, '열선시트') > 0 OR
INSTR(OPTIONS, '가죽시트') > 0
GROUP BY CAR_TYPE
ORDER BY CAR_TYPE ASC;
이 문제는 푸는데 은근 고민많이했다,,
WHERE 절 작성이 어려워서 그랬는데
처음엔 그룹화 후에 HAVING 조건으로 줄까? 했는데 그룹핑 전에 조건으로 걸러야될 거 같아서 넘기고,
WHERE 절 처음에는 OPTIONS = ANY('통풍시트', '열선시트', '가죽시트') 로 했는데 작동이 안됐다.. <-이렇게 하면 이중에 하나가 '일치'해야된다네요 흠
하튼 INSTR(col, str) > 0 <- 참거짓으로 나오는건가보다
배워갑니다
'Algorithm > SQL' 카테고리의 다른 글
[SQL] JOIN > 없어진 기록 찾기(Lv.3) (0) | 2023.12.08 |
---|---|
[SQL] JOIN > 상품 별 오프라인 매출 구하기 (1) | 2023.12.07 |
[SQL] GROUP BY > 동명 동물 수 찾기 (Lv.2) (0) | 2023.12.07 |
[SQL] SELECT > 12세 이하 여자 환자 목록 출력하기 (0) | 2023.03.31 |
[SQL] SELECT > 흉부외과 또는 일반외과 의사 목록 출력하기 (0) | 2023.03.31 |