๐Ÿ–ฅ๏ธ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ/SQL

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] [SQL] ๋Œ€์žฅ๊ท ๋“ค์˜ ์ž์‹์˜ ์ˆ˜ ๊ตฌํ•˜๊ธฐ

rtw0202 2026. 2. 23. 07:44

1. ๋ฌธ์ œ ์„ค๋ช…

๋Œ€์žฅ๊ท ๋“ค์€ ์ผ์ • ์ฃผ๊ธฐ๋กœ ๋ถ„ํ™”ํ•˜๋ฉฐ, ๋ถ„ํ™”๋ฅผ ์‹œ์ž‘ํ•œ ๊ฐœ์ฒด๋ฅผ ๋ถ€๋ชจ ๊ฐœ์ฒด, ๋ถ„ํ™”๊ฐ€ ๋˜์–ด ๋‚˜์˜จ ๊ฐœ์ฒด๋ฅผ ์ž์‹ ๊ฐœ์ฒด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์‹คํ—˜์‹ค์—์„œ ๋ฐฐ์–‘ํ•œ ๋Œ€์žฅ๊ท ๋“ค์˜ ์ •๋ณด๋ฅผ ๋‹ด์€ ECOLI_DATA ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. ECOLI_DATA ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ, ID,  PARENT_IDSIZE_OF_COLONYDIFFERENTIATION_DATEGENOTYPE ์€ ๊ฐ๊ฐ ๋Œ€์žฅ๊ท  ๊ฐœ์ฒด์˜ ID, ๋ถ€๋ชจ ๊ฐœ์ฒด์˜ ID, ๊ฐœ์ฒด์˜ ํฌ๊ธฐ, ๋ถ„ํ™”๋˜์–ด ๋‚˜์˜จ ๋‚ ์งœ, ๊ฐœ์ฒด์˜ ํ˜•์งˆ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์ตœ์ดˆ์˜ ๋Œ€์žฅ๊ท  ๊ฐœ์ฒด์˜ PARENT_ID ๋Š” NULL ๊ฐ’์ž…๋‹ˆ๋‹ค.

๋Œ€์žฅ๊ท  ๊ฐœ์ฒด์˜ ID(ID)์™€ ์ž์‹์˜ ์ˆ˜(CHILD_COUNT)๋ฅผ ์ถœ๋ ฅํ•˜๋Š” SQL ๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ž์‹์ด ์—†๋‹ค๋ฉด ์ž์‹์˜ ์ˆ˜๋Š” 0์œผ๋กœ ์ถœ๋ ฅํ•ด์ฃผ์„ธ์š”. ์ด๋•Œ ๊ฒฐ๊ณผ๋Š” ๊ฐœ์ฒด์˜ ID ์— ๋Œ€ํ•ด ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•ด์ฃผ์„ธ์š”.


2. ์ถœ๋ ฅ ์˜ˆ์‹œ

 
3. ๋ฌธ์ œ ๋‹ต์•ˆ

SELECT
    e.id,
    COUNT(d.parent_id) AS child_count
FROM ecoli_data e
LEFT JOIN ecoli_data d
ON e.id = d.parent_id
GROUP BY e.id
ORDER BY e.id ASC;