
CASE WHEN์ผ๋ก ๋ชจ๋ ๊ฐ๊ฒฉ๋๋ฅผ ๋๋๋ฉด? ํฐ ๊ธ์ก์ด ๋์ฌ์๋ก ์ฝ๋๊ฐ ๊ธธ์ด์ ธ์
ํจ์จ X ๊ฐ๋ ์ฑ X ์ ์ง๋ณด์ ์ด๋ ค์
select
case when PRICE < 20000 and PRICE >= 10000 then 10000
when PRICE < 30000 and PRICE >= 20000 then 20000
when PRICE < 40000 and PRICE >= 30000 then 30000
when PRICE < 50000 and PRICE >= 40000 then 40000
when PRICE < 60000 and PRICE >= 50000 then 50000
when PRICE < 70000 and PRICE >= 60000 then 60000
when PRICE < 80000 and PRICE >= 70000 then 70000
when PRICE < 90000 and PRICE >= 80000 then 80000
else '0'
end as PRICE_GROUP
, count(PRODUCT_ID) as PRODUCTS
from PRODUCT
group by PRICE_GROUP
order by PRICE_GROUP;
๊ฐ๊ฒฉ๋ ๊ทธ๋ฃนํ "๊ณต์ํ" : FLOOR(price / N) * N
SELECT
FLOOR(PRICE / 10000) * 10000 AS PRICE_GROUP,
COUNT(PRODUCT_ID) AS PRODUCTS
FROM PRODUCT
GROUP BY FLOOR(PRICE / 10000) * 10000
ORDER BY PRICE_GROUP;

<๋์ด, ์ถ์์ฐ๋ ๊ตฌ๊ฐ ๋๋๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง! ์์ฉ ๊ฐ๋ฅ>
- ๋์ด๋ฅผ 5์ด ๋จ์๋ก ๊ทธ๋ฃนํ
SELECT
FLOOR(age / 5) * 5 AS AGE_GROUP,
COUNT(*) AS CNT
FROM users
GROUP BY FLOOR(age / 5) * 5
ORDER BY AGE_GROUP;
- ์ถ์์ฐ๋๋ก ๊ทธ๋ฃนํ
FLOOR(birth_year / 10) * 10
FLOOR(x) ํจ์??
: x๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์ ์ค ๊ฐ์ฅ ํฐ ๊ฐ. ๐ค๐ญ ๋ง์ด ์ด๋ ต์ฌฌ?
์์๋ ์ซ์ a์ a+1 ์ฌ์ด์ ์์ผ๋๊น ๊ทธ ์ค ์์ ์ ์๋ฅผ ์ถ๋ ฅ!
3 ----- 3.57 ----- 4 โถ๏ธ 3
-6 ----- -5.8 ----- -5 โถ๏ธ -6
๐กRound()๋ ์ง์ ํ ์์ซ์ ์๋ฆฌ๊น์ง๋ง '๋ฐ์ฌ๋ฆผ'ํด์ ํํํ๊ธฐ ๋๋ฌธ์, ๊ตฌ๊ฐ์ '์ต์๊ฐ'์ ๊ตฌํ๊ธฐ์ ์ค๋ฅ๊ฐ ์์ ์ ์๋ค.