๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/131529
๋ค์์ ์ด๋ ์๋ฅ ์ผํ๋ชฐ์์ ํ๋งค ์ค์ธ ์ํ๋ค์ ์ ๋ณด๋ฅผ ๋ด์ PRODUCT ํ
์ด๋ธ์
๋๋ค. PRODUCT ํ
์ด๋ธ์ ์๋์ ๊ฐ์ ๊ตฌ์กฐ๋ก ๋์ด์์ผ๋ฉฐ, PRODUCT_ID, PRODUCT_CODE, PRICE๋ ๊ฐ๊ฐ ์ํ ID, ์ํ์ฝ๋, ํ๋งค๊ฐ๋ฅผ ๋ํ๋
๋๋ค.
Column name | Type | Nullable |
PRODUCT_ID | INTEGER | FALSE |
PRODUCT_CODE | VARCHAR(8) | FALSE |
PRICE | INTEGER | FALSE |
์ํ ๋ณ๋ก ์ค๋ณต๋์ง ์๋ 8์๋ฆฌ ์ํ์ฝ๋ ๊ฐ์ ๊ฐ์ง๋ฉฐ, ์ 2์๋ฆฌ๋ ์นดํ ๊ณ ๋ฆฌ ์ฝ๋๋ฅผ ์๋ฏธํฉ๋๋ค.
๋ฌธ์
PRODUCT ํ ์ด๋ธ์์ ์ํ ์นดํ ๊ณ ๋ฆฌ ์ฝ๋(PRODUCT_CODE ์ 2์๋ฆฌ) ๋ณ ์ํ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ SQL๋ฌธ์ ์์ฑํด ์ฃผ์ธ์. ๊ฒฐ๊ณผ๋ ์ํ ์นดํ ๊ณ ๋ฆฌ ์ฝ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด ์ฃผ์ธ์.
์์
์๋ฅผ ๋ค์ด PRODUCT ํ
์ด๋ธ์ด ๋ค์๊ณผ ๊ฐ๋ค๋ฉด
PRODUCT_ID | PRODUCT_CODE | PRICE |
1 | A1000011 | 10000 |
2 | A1000045 | 9000 |
3 | C3000002 | 22000 |
4 | C3000006 | 15000 |
5 | C3000010 | 30000 |
6 | K1000023 | 17000 |
์ํ ์นดํ ๊ณ ๋ฆฌ ์ฝ๋ ๋ณ ์ํ์ ์๋์ ๊ฐ์ผ๋ฏ๋ก,
- A1 : PRODUCT_ID๊ฐ 1, 2์ธ ์ํ
- C3 : PRODUCT_ID๊ฐ 3, 4, 5์ธ ์ํ
- K1 : PRODUCT_ID๊ฐ 6์ธ ์ํ
๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์์ผ ํฉ๋๋ค.
CATEGORY | PRODUCTS |
A1 | 2 |
C3 | 3 |
K1 | 1 |
๋ด๊ฐ ์์ฑํ ์ฝ๋
SELECT SUBSTR(PRODUCT_CODE, 1, 2) AS CATEGORY, count(PRODUCT_ID) AS PRODUCTS
FROM PRODUCT
GROUP BY CATEGORY
ORDER BY CATEGORY;
์ฝ๋ ์ค๋ช
- SUBSTR(PRODUCT_CODE, 1, 2) AS CATEGORY
- SUBSTR(string, start_position, length) : ์ง์ ๋ ์์น์์ ์์ํ์ฌ ์ง์ ๋ ๊ธธ์ด๋งํผ ๋ฌธ์์ด์ ์ผ๋ถ๋ฅผ ๋ฐํํ๋ค.
- SUBSTR์ ์ฌ์ฉํด์ PRODUCT_CODE ์ปฌ๋ผ์ 1๋ฒ์งธ ์๋ฆฌ์์ ์์ํด์ ๋ฌธ์์ด 5๊ฐ๋ฅผ ๊ฐ์ ธ์จ๋ค.
- ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ ๋ CATEGORY๋ผ๋ ์ปฌ๋ผ์ผ๋ก ์ถ๋ ฅํ๋ค.
- ์ผ๋ถ SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค(์: SQL Server) ์์๋ SUBSTRING() ํจ์๋ฅผ ์ฌ์ฉํ๋ฉฐ, ๊ทธ ์ฌ์ฉ๋ฒ์ SUBSTR()์ ๋น์ทํ๋ค.
- SUBSTRING(string, start_position, length)
- GROUP BY CATEGORY : CATEGORY ์ปฌ๋ผ ๋ณ๋ก ๊ทธ๋ฃน์ ๋ฌถ๋๋ค.
- ORDER BY CATEGORY : CATEGORY๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๋ค.
'ํ๋ก๊ทธ๋๋จธ์ค > ์๊ณ ๋ฆฌ์ฆ ํ์ด(SQL)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค_์ ์ ์๊ฐ ๊ตฌํ๊ธฐ(1) (0) | 2024.11.12 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค_๊ณ ์์ด์ ๊ฐ๋ ๋ช ๋ง๋ฆฌ ์์๊น (0) | 2024.11.11 |
์ค์ฑํ ์ฌ๋ถ ํ์ ํ๊ธฐ (0) | 2024.11.07 |
์กฐ๊ฑด์ ๋ง๋ ํ์ ์ ๊ตฌํ๊ธฐ (0) | 2024.11.07 |
์ด๋ฆ์ด ์๋ ๋๋ฌผ์ ์์ด๋ (0) | 2024.11.06 |