본문 바로가기

반응형

문제

PRODUCT 테이블에서 상품 카테고리 코드(PRODUCT_CODE 앞 2자리) 별 상품 개수를 출력하는 SQL문을 작성해주세요. 결과는 상품 카테고리 코드를 기준으로 오름차순 정렬해주세요.

구조

PRODUCT_ID, PRODUCT_CODE, PRICE는 각각 상품 ID, 상품코드, 판매가를 나타냅니다.

예시


완성한 쿼리

select
    substr(product_code,1,2) category,
    count(*) products
from product
group by substr(product_code,1,2)
order by substr(product_code,1,2)

substr을 이용해서 풀어줬습니다. 이전 시간에 풀었던 문제와 사용하는 함수만 다르고 매우 유사합니다!

substr(문자열, 시작위치, 길이) : Java의 Array와는 다르게 0부터가 아닌 1부터 시작입니다.
instr(문자열, 타겟문자열, 시작위치, 횟수) : 구분자로 문자 자르기, 문자열 찾기 

ex) str = '내 죽음을 적에게 알리지 마라'
instr(str, ' ') ➡️ 2 : str에서 띄어쓰기 있는 문자 위치 찾기
instr(str, ' ', 4) ➡️ 6 : str의 4째 문자부터 띄어쓰기가 있는 문자 위치 찾기
instr(str, ' ', 4, 3) ➡️ 14 : str의 4째 문자부터 3번째 띄어쓰기가 있는 문자 찾기
substr(str, 0, instr(str, ' ', 4, 3)) ➡️ '내 죽음을 적에게 알리지' : 띄어쓰기 3번째 문자열까지 문자열 자르기

 

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/131529

반응형
댓글