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

f1v3·2024년 3월 31일
post-thumbnail

프로그래머스 - 대장균들의 자식 수 구하기

문제

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

문제 풀이

테이블의 컬럼 중 IDPARENT_ID 를 사용하여 조인하면 된다고 생각했다.

일단 부모 기준으로 자식의 수를 구하는 것이기 때문에, 부모 기준으로 LEFT JOIN을 한다.

SELECT *
FROM ECOLI_DATA AS A
 LEFT JOIN ECOLI_DATA AS B
 ON A.ID = B.PARENT_ID

QUERY 결과

다음과 같은 결과에서 부모 ID를 기준으로 GROUP BY 를 해주고, 자식 IDCOUNT로 세주면 될 것이다.

SELECT A.ID, COUNT(B.ID) AS CHILD_COUNT
FROM ECOLI_DATA AS A
 LEFT JOIN ECOLI_DATA AS B
 ON A.ID = B.PARENT_ID
GROUP BY A.ID
ORDER BY A.ID ASC;

결과

문제 해답

SELECT A.ID, COUNT(B.ID) AS CHILD_COUNT
FROM ECOLI_DATA AS A
 LEFT JOIN ECOLI_DATA AS B
 ON A.ID = B.PARENT_ID
GROUP BY A.ID
ORDER BY A.ID ASC;
profile
https://blog.f1v3.my

0개의 댓글