๐ 1. ๋ฌธ์ ์ค๋ช
โ 2. ์คํจํ ์ฝ๋
PRODUCT_CODE ์ปฌ๋ผ์ด ์๋ฅผ ๋ค๋ฉด 'A1000011' ์ด๊ธฐ ๋๋ฌธ์
SUBSTRING(์ปฌ๋ผ๋ช ,์์์ธ๋ฑ์ค,๋์ธ๋ฑ์ค)๋ก ์ ๋ ์๋ฆฌ๋ง ๋ผ์ด ๋ด์ผ ํ๋ค.
SELECT SUBSTRING(Product_code,1,2) AS CATEGORY, COUNT(SUBSTRING(Product_code,1,2)) AS PRODUCTS
FROM PRODUCT
GROUP BY SUBSTRING(Product_code,1,2), Product_code
ORDER BY Category;
๋ด๊ฐ ์์ฑํ ์ฝ๋์ ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด A2 ๊ธฐ์ค์ผ๋ก GROUP ์ผ๋ก ๋ฌถ์ด์ง ์์ ๊ฒ์ ํ์ธ ํ ์ ์๋ค.
โญ 3. ์ ๋ต์ฝ๋
GROUP BY ์ ์์ SUBSTRING(Product_code,1,2)๋ก๋ง ๋ฌถ์ด์ผ ํจ
PRODUCT_CODE ์ปฌ๋ผ์ ์ง์์ฃผ๋๊น ์ ๋ต์ฒ๋ฆฌ๊ฐ ๋ฌ๋ค.
HAVING ์ ์ ์ง๊ณ ํจ์ ์ฌ์ฉํ ๋๋ GROUPBY ์ ์ ์ฌ์ฉ๋ ๋ชจ๋ ์ปฌ๋ผ์ ๋์ดํด์ผ ๋๋ ๊ฑฐ๋ ํท๊ฐ๋ ธ๋ค.
SUBSTIRNG ํจ์๋ฅผ SELECT ์ ์ ์ธ ๋๋ ํด๋นํ๋ ์ปฌ๋ผ ๊ธฐ์ค์ผ๋ก๋ง GROUP BY ํด ์ฃผ๋ฉด ๋จ.
SELECT SUBSTRING(Product_code,1,2) AS CATEGORY, COUNT(SUBSTRING(Product_code,1,2)) AS PRODUCTS
FROM PRODUCT
GROUP BY SUBSTRING(Product_code,1,2)
ORDER BY Category;
๐ TMI
๋ฌธ์์ด ์๋ฅด๊ธฐ ํจ์ ๊ด๋ จ ๋ด์ฉ
LEFT()
์ฒ์ ๋ ๊ธ์๋ก ๊ทธ๋ฃนํํ ๋ SUBSTRING() ํจ์ ๋์ LEFT () ๋ฅผ ์จ ์ค๋ ๋๋ค.
SELECT
LEFT(Product_code, 2) AS Category,
COUNT(*) AS Products
FROM
PRODUCT
GROUP BY
LEFT(Product_code, 2)
ORDER BY
Category;
LEFT๋ ๋ฌธ์์ด์ ์ผ์ชฝ์์๋ถํฐ ์ง์ ๋ ๋ฌธ์ ์๋ฅผ ์๋ฆ.
SELECT LEFT('ProductCode123', 6) AS result;
// ๊ฒฐ๊ณผ: 'Produc'
// ๋ฌธ์์ด 'ProductCode123'์ ์ผ์ชฝ์์ 6๊ธ์๋ง ์๋ฆ.
SUBSTRING_INDEX()
ํน์ ๊ตฌ๋ถ์๋ก ์๋ฅธ ๊ฐ์ผ๋ก ๊ทธ๋ฃนํ
๋ง์ฝ์ '010-1234-5678' ์ฒ๋ผ '-'๊ฐ์ ๊ตฌ๋ถ์๊ฐ ์ฌ์ด์ ์๋ค๋ฉด ์ด๊ฑธ ์๋ผ์ ๊ทธ๋ฃนํ ํด์ผ ํ๋ค.
๊ทธ ๋ SUBSTRING_INDEX() ํจ์๋ฅผ ์ฌ์ฉํ๋ค.
SUBSTRING_INDEX๋ ๋ฌธ์์ด์ ํน์ ๊ตฌ๋ถ์๋ก ๋๋๊ณ , ๊ทธ ์ค ์ง์ ๋ ๋ถ๋ถ์ ๋ฐํํ๋ค.
SELECT SUBSTRING_INDEX('Product-Code-123', '-', 2) AS result;
// ๊ฒฐ๊ณผ: 'Product-Code'
// '-'๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฌธ์์ด์ ๋๋๊ณ , ์ผ์ชฝ์์ 2๊ฐ์ ์กฐ๊ฐ์ ๋ฐํ.
SELECT SUBSTRING_INDEX('Product-Code-123', '-', -1) AS result;
// ๊ฒฐ๊ณผ: '123'
// '-'๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฌธ์์ด์ ๋๋๊ณ , ์ค๋ฅธ์ชฝ์์ 1๊ฐ์ ์กฐ๊ฐ์ ๋ฐํ.
์์ฝ
LEFT
๊ณ ์ ๋ ๋ฌธ์ ์๋ก ์๋ผ๋ด๊ธฐ
์: ์ฒ์ 3๊ธ์ ๊ฐ์ ธ์ค๊ธฐ → LEFT(Product_code, 3)
SUBSTRING_INDEX
ํน์ ๊ตฌ๋ถ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋ผ๋ด๊ธฐ
์: ๊ตฌ๋ถ์ '-' ๊ธฐ์ค์ผ๋ก ์ฒซ ๋ฒ์งธ ์กฐ๊ฐ ๊ฐ์ ธ์ค๊ธฐ → SUBSTRING_INDEX(Product_code, '-', 1)