
1. ๋ฌธ์ ์ค๋ช

2. ์ ๊ทผ๋ฐฉ์
์ด๋ ๊ฒ ๊น์ง ์ค๋ ๋ถ์ก๊ณ ์์ ๋ฌธ์ ๊ฐ ์๋๋ฐ ์ค๋์ ํ๊ธฐ ์ซ์ด์ ใ ใ ใ ...
๊ฒ์ผ๋ฆ ์ข ํผ์๋ดค๋ค.

์ฒ์์๋ ECOLI_DATA ํ
์ด๋ธ ๋ด์์ PARENT_ID(๋ถ๋ชจ)๊ฐ ์๋ ๋ฐ์ดํฐ๋ค์ ID๊ฐ์ ์นด์ดํธ ํด ์ฃผ๋ฉด ๋๋๊ฑฐ๋ค ๋ผ๊ณ ์๊ฐ ํด์ ํ๋ ธ๋ค. ๊ฒฐ๊ณผ์ฐฝ์ ๋ณด๋ ์์์ด ์๋ ๋ถ๋ชจ๋ค๋ง ์ถ๋ ฅ์ด ๋๊ณ ์์์ด ์๋ ๋ถ๋ชจ๋ค์ ID๊ฐ์ ์กฐํ๊ฐ ๋์ง ์์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋์ LEFT JOIN์ ํด ์ฃผ์ด์ผ ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.
์ฝ๋๋ฅผ ์ด๋ ๊ฒ ๊ณ ์ณค๋๋ฐ ์ด๋ ๊ฒ ํ๋๋ฐ๋ ๊ฒฐ๊ณผ๋ ๊ฐ๋ค.
์ด๋ ๊ฒ ๊ณ ์น๋ฉด์ ๋ถ๋ชจ ํ ์ด๋ธ์ด ID ๊ฐ์ ID๋ก SELECTํ๊ณ , ์์ ํ ์ด๋ธ์ PARENT_ID๋ฅผ ์นด์ดํ ํด ์ฃผ์๋ค.

ํ๋ฆฐ ์ด์ ๋ WHERE ์ ๋๋ฌธ์ด์๋ค.
์์์ด ์๋ ๋ถ๋ชจ๋ ์นด์ดํ ์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์
WHERE E.PARENT_ID IS NOT NULl ์กฐ๊ฑด์ ๋นผ ์ฃผ์ด์ผ ์ ๋ต~!
3. ์ ๋ต์ฝ๋
SELECT P.ID, COUNT(E.PARENT_ID) AS CHILD_COUNT
FROM ECOLI_DATA P
LEFT JOIN ECOLI_DATA E ON P.ID = E.PARENT_ID
GROUP BY P.ID
ORDER BY P.ID;
'Algorithm > SQLํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ

1. ๋ฌธ์ ์ค๋ช

2. ์ ๊ทผ๋ฐฉ์
์ด๋ ๊ฒ ๊น์ง ์ค๋ ๋ถ์ก๊ณ ์์ ๋ฌธ์ ๊ฐ ์๋๋ฐ ์ค๋์ ํ๊ธฐ ์ซ์ด์ ใ ใ ใ ...
๊ฒ์ผ๋ฆ ์ข ํผ์๋ดค๋ค.

์ฒ์์๋ ECOLI_DATA ํ
์ด๋ธ ๋ด์์ PARENT_ID(๋ถ๋ชจ)๊ฐ ์๋ ๋ฐ์ดํฐ๋ค์ ID๊ฐ์ ์นด์ดํธ ํด ์ฃผ๋ฉด ๋๋๊ฑฐ๋ค ๋ผ๊ณ ์๊ฐ ํด์ ํ๋ ธ๋ค. ๊ฒฐ๊ณผ์ฐฝ์ ๋ณด๋ ์์์ด ์๋ ๋ถ๋ชจ๋ค๋ง ์ถ๋ ฅ์ด ๋๊ณ ์์์ด ์๋ ๋ถ๋ชจ๋ค์ ID๊ฐ์ ์กฐํ๊ฐ ๋์ง ์์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋์ LEFT JOIN์ ํด ์ฃผ์ด์ผ ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.
์ฝ๋๋ฅผ ์ด๋ ๊ฒ ๊ณ ์ณค๋๋ฐ ์ด๋ ๊ฒ ํ๋๋ฐ๋ ๊ฒฐ๊ณผ๋ ๊ฐ๋ค.
์ด๋ ๊ฒ ๊ณ ์น๋ฉด์ ๋ถ๋ชจ ํ ์ด๋ธ์ด ID ๊ฐ์ ID๋ก SELECTํ๊ณ , ์์ ํ ์ด๋ธ์ PARENT_ID๋ฅผ ์นด์ดํ ํด ์ฃผ์๋ค.

ํ๋ฆฐ ์ด์ ๋ WHERE ์ ๋๋ฌธ์ด์๋ค.
์์์ด ์๋ ๋ถ๋ชจ๋ ์นด์ดํ ์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์
WHERE E.PARENT_ID IS NOT NULl ์กฐ๊ฑด์ ๋นผ ์ฃผ์ด์ผ ์ ๋ต~!
3. ์ ๋ต์ฝ๋
SELECT P.ID, COUNT(E.PARENT_ID) AS CHILD_COUNT FROM ECOLI_DATA P LEFT JOIN ECOLI_DATA E ON P.ID = E.PARENT_ID GROUP BY P.ID ORDER BY P.ID;