[MySQL] 프로그래머스 카테고리 별 상품 개수 구하기
2023. 1. 13.
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/131529

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 서론

 

substr 활용법을 알게 해준 좋은 문제 :)

 

2. 문제 풀이

 

PRODUCT: 의류 쇼핑몰에서 판매 중인 상품들의 정보를 담은 테이블

 

테이블 구조:

PRODUCT_ID, PRODUCT_CODE, PRICE

(각각 상품 ID, 상품코드, 판매가)

 

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

 

핵심은 어떻게 코드 앞 두 자리만으로 나눠서 식별할 것인가였다.

 

이 문제를 풀면서 느낀 건데 SQL이라고 따로 어렵게 생각하 필요 없이 PS 하듯이 문제를 풀어도 될 것 같다.

 

왜냐하면 코드 앞 두 자리를 substr을 통해서 앞의 두 자리를 잘라서 변수를 만들어줬기 때문이다. 

이 변수를 이용해 그룹화하면 카테고리별 상품 개수를 구할 수 있다.

 

3. 코드 설명

 

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

 

substr을 통해 앞의 두 글자를 잘라주고 변수를 만들었다.

그리고 그걸 토대로 group by로 카테고리가 같은 것들끼리 그룹화를 한 후에 그 코드가 몇 개인지 count()로 상품 개수를 세어주었다.

그리고 문제 조건에 따라 정렬을 했다.

 

 

 

 

반응형
myoskin