โค๏ธ ๋ฌธ์ ์ค๋ช
๋ค์์ ์์ด์คํฌ๋ฆผ ๊ฐ๊ฒ์ ์๋ฐ๊ธฐ ์ฃผ๋ฌธ ์ ๋ณด๋ฅผ ๋ด์ FIRST_HALF ํ ์ด๋ธ๊ณผ ์์ด์คํฌ๋ฆผ ์ฑ๋ถ์ ๋ํ ์ ๋ณด๋ฅผ ๋ด์ ICECREAM_INFO ํ ์ด๋ธ์ ๋๋ค. FIRST_HALF ํ ์ด๋ธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ, SHIPMENT_ID, FLAVOR, TOTAL_ORDER ๋ ๊ฐ๊ฐ ์์ด์คํฌ๋ฆผ ๊ณต์ฅ์์ ์์ด์คํฌ๋ฆผ ๊ฐ๊ฒ๊น์ง์ ์ถํ ๋ฒํธ, ์์ด์คํฌ๋ฆผ ๋ง, ์๋ฐ๊ธฐ ์์ด์คํฌ๋ฆผ ์ด์ฃผ๋ฌธ๋์ ๋ํ๋ ๋๋ค. FIRST_HALF ํ ์ด๋ธ์ ๊ธฐ๋ณธ ํค๋ FLAVOR์ ๋๋ค.
ICECREAM_INFO ํ ์ด๋ธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ, FLAVOR, INGREDITENT_TYPE ์ ๊ฐ๊ฐ ์์ด์คํฌ๋ฆผ ๋ง, ์์ด์คํฌ๋ฆผ์ ์ฑ๋ถ ํ์ ์ ๋ํ๋ ๋๋ค. INGREDIENT_TYPE์๋ ์์ด์คํฌ๋ฆผ์ ์ฃผ ์ฑ๋ถ์ด ์คํ์ด๋ฉด sugar_based๋ผ๊ณ ์ ๋ ฅ๋๊ณ , ์์ด์คํฌ๋ฆผ์ ์ฃผ ์ฑ๋ถ์ด ๊ณผ์ผ์ด๋ฉด fruit_based๋ผ๊ณ ์ ๋ ฅ๋ฉ๋๋ค. ICECREAM_INFO์ ๊ธฐ๋ณธ ํค๋ FLAVOR์ ๋๋ค. ICECREAM_INFOํ ์ด๋ธ์ FLAVOR๋ FIRST_HALF ํ ์ด๋ธ์ FLAVOR์ ์ธ๋ ํค์ ๋๋ค.
๐๋ฌธ์
์๋ฐ๊ธฐ ์์ด์คํฌ๋ฆผ ์ด์ฃผ๋ฌธ๋์ด 3,000๋ณด๋ค ๋์ผ๋ฉด์ ์์ด์คํฌ๋ฆผ์ ์ฃผ ์ฑ๋ถ์ด ๊ณผ์ผ์ธ ์์ด์คํฌ๋ฆผ์ ๋ง์ ์ด์ฃผ๋ฌธ๋์ด ํฐ ์์๋๋ก ์กฐํํ๋ SQL ๋ฌธ์ ์์ฑ
๐์์
โ
๐ ํ์ด
์ด๋ด์๊ฐ ใ ใ ใ ... ํ ๋ฒ์ ์ ๋ต์ฒ๋ฆฌ๋๋ค๋ ์ด๊ฒ ๋๋ค๊ตฌ?
โ ์ธ๋ผ์ธ๋ทฐ(Inline View) ๋ฅผ ์ด์ฉํ ํ์ด
SQL ๋ฌธ ์คํ ์์
FROM > WHERE > GROUP BY > HAVING > SELECT > ORDER BY
๋๋ ์ด ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ์ธ๋ผ์ธ ๋ทฐ ํ์์ผ๋ก ์ฟผ๋ฆฌ๋ฅผ ์ง์ผ ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.
1. FROM ์ ์ FIRST_HALF ํ ์ด๋ธ์์ ์๋ฐ๊ธฐ ํ๋งค๋์ด 3000๊ฐ๊ฐ ๋๋ ๋ฐ์ดํฐ๋ง ๊ฐ์ ธ์จ๋ค.
2. ์ ํ ์ด๋ธ์ A๋ผ๊ณ ๋ช ๋ช ํ๋ค.
3. A์ ICECREAM_INFO B๋ฅผ FLAVOR Column์ผ๋ก INNER JOINํ๋ค.
๋ ์ฒ์์ LEFT JOIN ์ ์๊ฐ ํ๋๋ฐ ๊ทธ๋ฅ INNER JOIN ํด ์ฃผ๋๊ฒ ๊ฐ๋จํ๋ค.
์ด์ฐจํผ ์ฃผ์ฑ๋ถ์ด 'fruit_based'์ธ ๋ฐ์ดํฐ๋ง ๊ณ ๋ฅด๋ ๊ฑฐ๋๊น LEFT JOIN ํ๋ ์๋ฏธ๊ฐ ํ๋๋ ์๋ค.
4. ๊ทธ๋ฆฌ๊ณ ๊ณผ์ผ ๋ฒ ์ด์ค์ ์์ด์คํฌ๋ฆผ๋ง์ ์ถ์ถํ๊ธฐ ์ํด
WHERE ์ ์ B.INGREDIENT_TYPE LIKE 'fruit_based'๋ผ๋ ์กฐ๊ฑด์ ์ค๋ค.
์ด ๋ LIKE ์ฐ์ฐ์ ๋์ = ์ ์จ๋ ๋ฌด๋ฐฉํ๋ค.
5. ๋ง์ง๋ง์ผ๋ก A๊ฐ ๊ฐ์ง TOTAL_ORDER Column์ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๋ค.