카테고리 별 상품 개수 구하기

정민교·2024년 3월 17일
0

SQL프로그래머스

목록 보기
17/25

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

정답

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

포인트

  1. LEFT(), SUBSTR()

문자열 추출을 위한 LEFT() 혹은 SUBSTR() 함수를 사용할 수 있다.

  • LEFT(문자열, 왼쪽부터 자를 갯수)
  • SUBSTR(문자열, 시작위치, 자를 갯수)
    - 시작 위치는 1부터 시작한다.
  1. 성능?

현재 코드는 GROUP BY를 PRODUCT_CODE를 LEFT 함수를 적용하였다.

이는 PRODUCT_CODE를 풀스캔해서 함수를 적용한 후 group by 를 하기 때문에 성능상 좋지 못할 수 있다.

될 수 있으면 product_code에서 두 자리를 자른 카테고리 코드 컬럼을 추가해 인덱스를 걸면 조회 성능을 높일 수 있다.

profile
백엔드 개발자

0개의 댓글