쥬니어 분석가

SQL 프로그래머스 - 가격대 별 상품 개수 구하기 본문

sql

SQL 프로그래머스 - 가격대 별 상품 개수 구하기

jyuuni 2023. 6. 19. 13:08
반응형

가격대 별 상품 개수 구하기

  • 의류 쇼핑몰에서 판매중인 상품들의 정보를 담은 PRODUCT 테이블
PRODUCT_ID PRODUCT_CODE PRICE
상품 ID 상품 코드 판매가
 

문제

PRODUCT 테이블에서 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL 문을 작성해주세요. 이때 컬럼명은 각각 컬럼명은 PRICE_GROUP, PRODUCTS로 지정해주시고 가격대 정보는 각 구간의 최소금액(10,000원 이상 ~ 20,000 미만인 구간인 경우 10,000)으로 표시해주세요. 결과는 가격대를 기준으로 오름차순 정렬해주세요.

 

문제 풀이

SELECT (
    CASE WHEN PRICE < 10000 THEN 0
    WHEN PRICE >= 10000 AND PRICE < 20000 THEN 10000
    WHEN PRICE >= 20000 AND PRICE < 30000 THEN 20000
    WHEN PRICE >= 30000 AND PRICE < 40000 THEN 30000
    WHEN PRICE >= 40000 AND PRICE < 50000 THEN 40000
    WHEN PRICE >= 50000 AND PRICE < 60000 THEN 50000
    END) AS PRICE_GROUP,
    COUNT(PRODUCT_ID) AS PRODUCTS
FROM PRODUCT
GROUP BY PRICE_GROUP
ORDER BY 1

*처음엔 각 구간대를 수동으로 나누려고 했는데 그럼 너무 비효율적인 것 같아서 만원대 자릿수만 남기고 버리는 방법(TRUNCATE)을 생각했다.

 

SELECT (
    CASE WHEN PRICE < 10000 THEN 0
    ELSE TRUNCATE(PRICE,-4)
    END) AS PRICE_GROUP,
    COUNT(PRODUCT_ID) AS PRODUCTS
FROM PRODUCT
GROUP BY PRICE_GROUP
ORDER BY 1

 

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/131530

반응형