코딩테스트/lv3

[프로그래머스 코딩테스트] MySQL Lv.3 대장균들의 자식의 수 구하기

chantleman 2024. 7. 9. 11:05

 

문제 설명

 

대장균들은 일정 주기로 분화하며, 분화를 시작한 개체를 부모 개체, 분화가 되어 나온 개체를 자식 개체라고 합니다.

다음은 실험실에서 배양한 대장균들의 정보를 담은 ECOLI_DATA 테이블입니다.

 

ID : 대장균 개체의 ID

PARENT_ID : 부모 개체의 ID

SIZE_OF_COLONY : 개체의 크기 

DIFFERENTIATION_DATE : 분화되어 나온 날짜

GENOTYPE : 개체의 형질

 

최초의 대장균 개체의 PARENT_ID는 NULL값

 


 

문제

 

대장균 개체의 ID(ID)와 자식의 수(CHILD_COUNT)를 출력하는 SQL문을 작성해주세요. 자식이 없다면 자식의 수는 0으로 출력해주세요. 이때 결과는 개체의 ID에 대해 오름차순 정렬해주세요.

 

 

 

예를 들어  ECOLI_DATA 테이블이 다음과 같다면

 

ID 1인 개체의 자식은 ID 3으로 1개 ID 2인 개체의 자식은 ID 4, 5로 2개 ID 4인 개체의 자식은 ID 6으로 1개이며, 나머지 개체들은 자식이 없으므로 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;

 

부모 테이블: a

자식 테이블 : b

 

자식 테이블의 부모 id(b.paret_id)와 부모테이블의 id(a.id)가 같아야함