https://school.programmers.co.kr/learn/courses/30/lessons/131530
PRODUCT 테이블에서 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL 문을 작성해주세요. 이때 컬럼명은 각각 컬럼명은 PRICE_GROUP, PRODUCTS로 지정해주시고 가격대 정보는 각 구간의 최소금액(10,000원 이상 ~ 20,000 미만인 구간인 경우 10,000)으로 표시해주세요. 결과는 가격대를 기준으로 오름차순 정렬해주세요.
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라는 새로운 문법을 알게 됐다! 나중에 다시 한 번 풀어봐야겠다.
TRUNCATE(number, decimals)
=> 문제에서 TRUNCATE(PRICE, -4)는 PRICE의 값을 정수 네자리를 일의 자리부터 버린 후, 숫자를 반환
ex) PRICE = 12345의 경우, TRUNCATE(PRICE, -4)는 10000
ex) PRICE = 123456.789의 경우, TRUNCATE(PRICE, -4)는 120000
ex) PRICE = 123456.789의 경우, TRUNCATE(PRICE, -3)은 123000
ex) PRICE = 123456.789의 경우, TRUNCATE(PRICE, 3)은 123456
쉽게 말하면 decimals이 양수면 소수점 버림, 음수면 정수 버림하면 된다.