2023. 1. 20. 08:48ใ์ฝ๋ฉํ ์คํธ ์ฐ์ต/ํ๋ก๊ทธ๋๋จธ์ค_2023
๋ฌธ์ ์ค๋ช
๋ค์์ ์ด๋ ์๋ฅ ์ผํ๋ชฐ์์ ํ๋งค์ค์ธ ์ํ๋ค์ ์ ๋ณด๋ฅผ ๋ด์ PRODUCT ํ ์ด๋ธ์ ๋๋ค. PRODUCT ํ ์ด๋ธ์ ์๋์ ๊ฐ์ ๊ตฌ์กฐ๋ก ๋์ด์์ผ๋ฉฐ, PRODUCT_ID, PRODUCT_CODE, PRICE๋ ๊ฐ๊ฐ ์ํ ID, ์ํ์ฝ๋, ํ๋งค๊ฐ๋ฅผ ๋ํ๋ ๋๋ค.
Column name Type NullablePRODUCT_ID | INTEGER | FALSE |
PRODUCT_CODE | VARCHAR(8) | FALSE |
PRICE | INTEGER | FALSE |
์ํ ๋ณ๋ก ์ค๋ณต๋์ง ์๋ 8์๋ฆฌ ์ํ์ฝ๋ ๊ฐ์ ๊ฐ์ง๋ฉฐ ์ 2์๋ฆฌ๋ ์นดํ ๊ณ ๋ฆฌ ์ฝ๋๋ฅผ ๋ํ๋ ๋๋ค.
๋ฌธ์
PRODUCT ํ ์ด๋ธ์์ ๋ง์ ๋จ์์ ๊ฐ๊ฒฉ๋ ๋ณ๋ก ์ํ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ SQL ๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋ ์ปฌ๋ผ๋ช ์ ๊ฐ๊ฐ ์ปฌ๋ผ๋ช ์ PRICE_GROUP, PRODUCTS๋ก ์ง์ ํด์ฃผ์๊ณ ๊ฐ๊ฒฉ๋ ์ ๋ณด๋ ๊ฐ ๊ตฌ๊ฐ์ ์ต์๊ธ์ก(10,000์ ์ด์ ~ 20,000 ๋ฏธ๋ง์ธ ๊ตฌ๊ฐ์ธ ๊ฒฝ์ฐ 10,000)์ผ๋ก ํ์ํด์ฃผ์ธ์. ๊ฒฐ๊ณผ๋ ๊ฐ๊ฒฉ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
์์
์๋ฅผ ๋ค์ด PRODUCT ํ ์ด๋ธ์ด ๋ค์๊ณผ ๊ฐ๋ค๋ฉด
PRODUCT_ID PRODUCT_CODE PRICE1 | A1000011 | 10000 |
2 | A1000045 | 9000 |
3 | C3000002 | 22000 |
4 | C3000006 | 15000 |
5 | C3000010 | 30000 |
6 | K1000023 | 17000 |
๋ง์ ๋จ์์ ๊ฐ๊ฒฉ๋ ๋ณ๋ก ์ํ์ ๋๋๋ฉด
- ๊ฐ๊ฒฉ๋๊ฐ 0์ ~ 1๋ง์ ๋ฏธ๋ง์ธ ์ํ์ PRODUCT_ID ๊ฐ 2์ธ ์ํ 1๊ฐ,
- ๊ฐ๊ฒฉ๋๊ฐ 1๋ง์ ์ด์ ~ 2๋ง์ ๋ฏธ๋ง์ธ ์ํ๋ค์ PRODUCT_ID ๊ฐ 1, 4, 6์ธ ์ํ 3๊ฐ,
- ๊ฐ๊ฒฉ๋๊ฐ 2๋ง์ ์ด์ ~ 3๋ง์ ๋ฏธ๋ง์ธ ์ํ์ PRODUCT_ID ๊ฐ 3์ธ ์ํ 1๊ฐ,
- ๊ฐ๊ฒฉ๋๊ฐ 3๋ง์ ์ด์ ~ 4๋ง์ ๋ฏธ๋ง์ธ ์ํ์ PRODUCT_ID ๊ฐ 5์ธ ์ํ 1๊ฐ,
์ ๊ฐ๊ฐ ํด๋นํ๋ฏ๋ก ๋ค์๊ณผ ๊ฐ์ด ๊ฒฐ๊ณผ๊ฐ ๋์์ผ ํฉ๋๋ค.
PRICE_GROUP PRODUCTS
0 | 1 |
10000 | 3 |
20000 | 1 |
30000 | 1 |
๋์ ํ์ด
์ฒ์์๋ ์ด ๋ฌธ์ ๋ฅผ if๋ก ํด์ ํ ์๊ฐ์ด์๋๋ฐ ํํธ๋ก floor๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ์ข๋ค๋ ๊ฒ์ ๋ณด๊ณ floor๋ก ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋ฉด ๋ ๊น ์๊ฐํด๋ณด๋๋ฐ price ๋ฅผ 10000์ผ๋ก ๋๋๊ณ ๋ด๋ฆผํ๋ฉด 1, 2, 3, ์ด๋ฐ์์ผ๋ก ๋ชซ์ด ๊ตฌํด์ง ๊ฒ์ด๊ณ , ์ด๋ฅผ * 10000ํ๋ฉด 10000, 20000 ์ด๋ฐ์์ผ๋ก ๊ตฌํ ์ ์๋ค.
๊ทธ๋ฃนํ๋ floor(price/ 10000)์ ํตํด ๊ฐ๊ฒฉ๋๋ณ๋ก ๊ทธ๋ฃน์ ๋ง๋ค์ด์ฃผ๊ณ , ์กฐํํ ๋ 10000์ ๊ณฑํด์ ์กฐํํ๋ค.
๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ๋ฌธ์ ๋ฅผ ํ ์๊ฐ์ ํ๋ฉด ์ข์๊ฒ ๊ฐ๋ค.