알고리즘 챌린지/프로그래머스 MySQL 코테

가격대별 상품 구하기

JUN0126 2023. 11. 11. 11:48

 

처음에 풀은 방식

SELECT
CASE
		WHEN price between 0 and 9999
		THEN 0
        WHEN price between 10000 and 19999
		THEN 10000
        WHEN price between 20000 and 29999
		THEN 20000
        WHEN price between 30000 and 39999
		THEN 30000
        WHEN price between 40000 and 49999
		THEN 40000
        WHEN price between 50000 and 59999
		THEN 50000
        WHEN price between 60000 and 69999
		THEN 60000
        WHEN price between 70000 and 79999
		THEN 70000
        WHEN price between 80000 and 89999
		THEN 80000
        ELSE 0
        END
as PRICE_GROUP,
count(1) as PRODUCTS
from product group by PRICE_GROUP
ORDER BY PRICE_GROUP ASC

 

위와 같이 풀면 금액대의 범위가 더 증가 하였을떄 값을 추가를 해주어야 한다 

어떻게 해결할 것인가?

 

쉬운 해결 방안 

SELECT (PRICE-PRICE%10000) AS PRICE_GROUP, COUNT(*) AS PRODUCTS
FROM PRODUCT 
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP

 

PRICE_GROUP 값을 구할 떄 산술을 구해서 넣는다. (PRICE - (PRICE%10000)) AS PRICE_GROUP 

 

 

 

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

 

프로그래머스

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

programmers.co.kr