본문 바로가기

SQL/프로그래머스 SQL 고득점 kit

SQL 고득점 Kit / 가격대 별 상품 개수 구하기 / MySQL

728x90

📚문제

출처 : 프로그래머스(https://school.programmers.co.kr/learn/courses/30/lessons/131530)

 

📝풀이

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 PRICE_GROUP

우선 가격대 문제 옛날에 TRUNCATE함수로 푼게 기억나서 풀어봤다

 

SELECT CASE
          WHEN LEFT(PRICE/10000,1) != 0 THEN LEFT(PRICE/10000,1)+'0000'
          ELSE LEFT(PRICE/10000,1) 
       END AS PRICE_GROUP
     , COUNT(PRODUCT_ID) AS PRODUCTS
FROM PRODUCT 
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP

근데 이 코드는 왜 원하는대로 동작이 안될까?

가격대 (1,2,3,....) 뒤에 0000만 붙이면 정답일 것 같은데

CAST함수를 사용해서 문자열로 바꿔줘도 안되고 흠

이유를 모르겠다

728x90