본문 바로가기

코딩테스트/SQL

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

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

 

프로그래머스

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

programmers.co.kr

 

나의 방법

CASE 사용, 만약 가격이 매우 크다면 직접 작성하기에 번거로움

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'
        WHEN PRICE >= 60000 AND PRICE < 70000 THEN '60000'
        WHEN PRICE >= 70000 AND PRICE < 80000 THEN '70000'
        WHEN PRICE >= 80000 AND PRICE < 90000 THEN '80000'
        ELSE NULL END AS PRICE_GROUP,
    COUNT(*)
FROM PRODUCT
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP

 

다른 방법

TRUNCATE 사용, 지정된 소수점 자릿수 이하를 버린 수를 반환함

SELECT
    TRUNCATE(PRICE, -4) AS PRICE_GROUP,
    COUNT(*)
FROM PRODUCT
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP