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

Janet·2023년 3월 7일
0

Algorithm

목록 보기
55/314

문제

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


예시

예를 들어 PRODUCT 테이블이 다음과 같다면

PRODUCT_IDPRODUCT_CODEPRICE
1A100001110000
2A10000459000
3C300000222000
4C300000615000
5C300001030000
6K100002317000

상품 카테고리 코드 별 상품은 아래와 같으므로,

  • A1PRODUCT_ID가 1, 2 인 상품
  • C3PRODUCT_ID가 3, 4, 5 인 상품
  • K1PRODUCT_ID가 6 인 상품

다음과 같은 결과가 나와야 합니다.

CATEGORYPRODUCTS
A12
C33
K11

문제풀이

💡 문제풀이 과정

  • 상품 카테고리 코드는 PRODUCT_CODE 컬럼의 앞 2자리 문자열을 추출해야 하므로, 문자열을 추출하는 메소드인 LEFT()SUBSTR() 혹은 MID()를 사용하여 추출한다. 카테고리별 개수를 출력해야 하므로 COUNT(), 그리고 카테고리별로 그룹화하기 위해 GROUP BY를 하고 마지막으로 ORDER BY로 오름차순 정렬한다.
LEFT(문자열, 문자열의 왼쪽에서부터 가져올 개수)
SUBSTR(문자열, 시작위치, 가져올 개수)
MID(문자열, 시작위치, 가져올 개수)
    
// 예제
    
SELECT LEFT('abcde', 2) // 'ab'
SELECT LEFT('abcde', 3) // 'abc'
    
SELECT SUBSTR('abcde', 1, 2) // 'ab'
SELECT SUBSTR('abcde', 2, 3) // 'bcd'
SELECT SUBSTR('abcde', 3) // 'cde'
    
SELECT MID('abcde', 1, 2) // 'ab'
SELECT MID('abcde', 2, 3) // 'bcd'
SELECT MID('abcde', 3) // 'cde'

✅ 답안

SELECT LEFT(PRODUCT_CODE, 2) AS CATEGORY, COUNT(*) AS PRODUCTS
// SELECT SUBSTR(PRODUCT_CODE, 1, 2) AS CATEGORY, COUNT(*) AS PRODUCTS
FROM PRODUCT
GROUP BY CATEGORY
ORDER BY CATEGORY
profile
😸

0개의 댓글