본문 바로가기
Computer/Algorithm_SQL

[Algorithm_SQL] 카테고리 별 상품 개수 구하기 (Success)

by HJ0216 2023. 10. 2.
 

프로그래머스

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

programmers.co.kr

 

📝 Language: Oracle

 

1
2
3
4
5
6
7
  SELECT SUBSTR(PRODUCT_CODE, 12) CATEGORY, 
         COUNT(PRODUCT_ID) PRODUCTS
    FROM PRODUCT
GROUP BY SUBSTR(PRODUCT_CODE, 12)
ORDER BY SUBSTR(PRODUCT_CODE, 12)
;
 
 

🙂 확인 사항

1. PRODUCT 테이블

2. 상품 카테고리 코드 별 상품 개수 출력

3. 상품 카테고리코드 기준 오름차순 정렬

 

😮  외의 풀이

1
2
3
4
5
6
7
8
9
10
11
12
WITH SUBSTRING AS (
      SELECT SUBSTR(PRODUCT_CODE, 12) CATEGORY,
             COUNT(*) PRODUCTS
        FROM PRODUCT
    GROUP BY SUBSTR(PRODUCT_CODE, 12)
)
  SELECT CATEGORY,
         PRODUCTS
    FROM SUBSTRING
ORDER BY CATEGORY
;
 
 

- GROUP BY 결과는 자체적으로 DISTINCT되어 나오므로 공통 표현식에서 COUNT 먼저 처리

- 집계함수는 GROUP BY와 함께 사용

- SELECT절은 GROUP BY 절에 사용된 COL만 사용 가능

 

1
2
3
4
5
6
7
8
9
10
  SELECT CATEGORY, 
         COUNT(CATEGORY) AS PRODUCTS
    FROM (
       SELECT SUBSTR(PRODUCT_CODE, 12) AS CATEGORY
         FROM PRODUCT
    )
GROUP BY CATEGORY
ORDER BY CATEGORY
;
 
 

- 인라인 뷰 사용

- COUNT(CATEGORY)는 그룹 내에서 CATEGORY 열의 각 고유한 값의 개수를 계산

    - SQL 쿼리가 실행될 때, 먼저 FROM 절에서 테이블을 가져오고 필요한 데이터 준비

    - 이후, WHERE 절에 해당하는 데이터를 필터링하고, 필요한 변환 작업 수행

    - GROUP BY가 먼저 실행되어 COUNT를 반환하고, SELECT이 실행

 

 

 

🔗 소스 코드
GitHub