본문 바로가기

DB/Programmers SQL Kit

[My_SQL] 대장균들의 자식의 수 구하기

문제

 

부모 id를 기준으로 null이 아닌 값들을 그룹화한 테이블을 이용하여 문제를 풀이한다

ECOLI_DATA에 해당 그룹화 테이블을 조인하고 COALESCE 함수를 통해 합한다.

코드

SELECT a.id, COALESCE(b.count, 0) AS CHILD_COUNT
FROM ECOLI_DATA a LEFT JOIN (
        SELECT parent_id, COUNT(*) AS COUNT
        FROM ECOLI_DATA
        GROUP BY parent_id
        HAVING parent_id IS NOT NULL
    ) b ON a.id = b.parent_id
ORDER BY 1 ASC;