[프로그래머스] 카테고리 별 상품 개수 구하기 - SQL / Lv.2

ByungJik_Oh·2025년 9월 26일
0

[Programmers - SQL]

목록 보기
32/39
post-thumbnail

💡 문제

다음은 어느 의류 쇼핑몰에서 판매중인 상품들의 정보를 담은 PRODUCT 테이블입니다. PRODUCT 테이블은 아래와 같은 구조로 되어있으며, PRODUCT_ID, PRODUCT_CODE, PRICE는 각각 상품 ID, 상품코드, 판매가를 나타냅니다.

Column nameTypeNullable
PRODUCT_IDINTEGERFALSE
PRODUCT_CODEVARCHAR(8)FALSE
PRICEINTEGERFALSE

상품 별로 중복되지 않는 8자리 상품코드 값을 가지며, 앞 2자리는 카테고리 코드를 의미합니다.

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


💭 접근

이 문제에서 요구하는 카테고리는 PRODUCT_CODE의 앞 2자리에 나타나 있으므로 LEFT() 함수를 사용하여 문자열의 왼쪽부터 원하는 길이까지 구할 수 있다.

우선 PRODUCT_CODE앞 두자리를 추출한 후, 이를 바탕으로 그룹을 만든다.

이후, COUNT() 함수를 사용하여 해당 그룹에 속하는 상품의 개수를 세주면 된다.

  1. SUBSTRING(문자열, 시작위치, 길이): 문자열을 시작위치부터 길이만큼 자른다.
    ex. SUBSTRING('PYTHON', 2, 3) == 'YTH'

  2. LEFT(문자열, 길이): 문자열을 왼쪽부터 길이만큼 자른다.
    ex. LEFT('PYTHON', 4) == 'PYTH'

  3. RIGHT(문자열, 길이): 문자열을 오른쪽부터 길이만큼 자른다.
    ex. RIGHT('PYTHON', 5) == 'YTHON'

📒 코드

SELECT  LEFT(PRODUCT_CODE, 2) AS CATEGORY
        ,COUNT(*) AS PRODUCTS
  FROM  PRODUCT
 GROUP
    BY  CATEGORY
 ORDER
    BY  CATEGORY ASC;

💭 후기

문자열 함수와 GROUP BY 를 사용하는 조금 고민이 필요한 문제였다.


🔗 문제 출처

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


profile
精進 "정성을 기울여 노력하고 매진한다"

0개의 댓글