본문 바로가기
공부/SQL

대장균들의 자식의 수 구하기

by shining park 2024. 8. 1.

https://school.programmers.co.kr/learn/courses/30/lessons/299305

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

- 나의 풀이

배양한 대장균들의 정보를 담은 ECOLI_DATA 테이블을 2개로 생각

 

✅ 부모 기준 LEFT JOIN

대장균 개체의 ID(ID)와 부모 개체의 ID(PARENT_ID)를 이용하여 LEFT JOIN ➡︎ 부모가 없는 경우(Null)까지 포함하기 위함

 

✅ 부모 기준 GROUP BY

대장균 개체의 ID(ID) 즉, 부모 ID 기준으로 자식 ID를 COUNT

 

- 나의 코드

select distinct(a.ID), count(b.PARENT_ID) as CHILD_COUNT
from ECOLI_DATA a
left join ECOLI_DATA b
on a.ID = b.PARENT_ID
group by a.ID
order by a.ID;

 

 

✅ 서브 쿼리 풀이

 

- 다른 풀이 방식

select a.id, (select count(*)
             from ecoli_data b
             where a.id = b.parent_id) as child_count
from ecoli_data a
order by a.id asc;