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

yenpkr·2025년 2월 6일
0

sql

목록 보기
15/91

문제

제출

select category,count(category)
from(SELECT left(product_code,2) as 'category'
      from product) as sub
group by category

📌 새로 배운 내용

✅ 문자열 자르기

  • SUBSTIRNG : 문자열을 받아 주어진 시작위치부터 주어진 길이만큼 자름
    SUBSTRING(문자열, 시작위치, 길이)
    select substring('hello world',1,5)
    -> hello
  • LEFT : 문자열을 받아 왼쪽부터 주어진 길이만큼 자름
    LEFT(문자열, 길이)
    select left('hello world',5)
    -> hello
  • RIGHT : 문자열을 받아 오른쪽부터 주어진 길이만큼 자름
    RIGHT(문자열, 길이)
    select left('hello world',5)
    -> world

📌 복습 내용

✅ GROUP BY

  • 특정 칼럼들의 데이터를 기준으로 그룹을 나눠주는 기능

  • 주로 집계함수와 함께 사용하여 집계데이터(평균, 최대, 최소, 개수 등)를 구하는 데 사용

    SELECT substring(product_code,1,2) as 'category'
    from product
    group by category

또 다른 답

SELECT left(product_code,2) as 'category',count(PRODUCT_CODE) as products
from product
group by category
SELECT substring(product_code,1,2) as 'category',count(PRODUCT_CODE) as products
from product
group by category
SELECT left(product_code,2) as CATEGORY,count(*) as PRODUCTS
from product
group by CATEGORY
order by 1

🚨 error

  • subquery 별칭
    서브쿼리에 별칭 (AS ~)을 붙이지 않으면 다음과 같은 에러난다.
    Every derived table must have its own alias
  • 별칭 COUNT()에서 사용 X
    SELECT substring(product_code,1,2) as 'category',count(category) as products
    from product
    group by category
    SELECT 문에서 정의된 별칭은 GROUP BY 또는 HAVING에서만 사용할 수 있고, COUNT() 같은 집계 함수에서는 사용할 수 없음!
    이거 때문에 from 절에 서브쿼리 만들어서 카테고리 테이블을 따로 만들었다.

문자열 참고 블로그

0개의 댓글