[프로그래머스] Lv.3 대장균들의 자식의 수 구하기 (OUTER JOIN)
[프로그래머스] Lv.3 대장균들의 자식의 수 구하기 (OUTER JOIN)
May 30, 2024


답
SELECT PARENT.ID, COUNT(CHILD.ID) AS CHILD_COUNT
FROM ECOLI_DATA AS PARENT
LEFT OUTER JOIN ECOLI_DATA AS CHILD
ON PARENT.ID = CHILD.PARENT_ID
GROUP BY PARENT.ID
ORDER BY ID
풀이
◽ LEFT OUTER JOIN
- ‘ID’와 ‘PARENT_ID’를 비교해서 ID와 PARENT_ID와 비교해서, ‘PARENT_ID’가 없을 ID를 생각해서
OUTER JOIN
을 한다. 비교 대상은 ID가 자식의 PARENT_ID일 경우를 JOIN한다.
SELECT PARENT.ID, CHILD.ID AS CHILD
FROM ECOLI_DATA AS PARENT
LEFT OUTER JOIN ECOLI_DATA AS CHILD
⭐ ON PARENT.ID = CHILD.PARENT_ID
자식이 있는 만큼 중복되는 ID가 나온 것을 볼 수 있다.

- 그 다음, 자식의 수를 찾기 위해
PARENT.ID
를그룹화
한 후, 자식 수를COUNT
한다.
⭐ SELECT PARENT.ID, COUNT(CHILD.ID) AS CHILD_COUNT
FROM ECOLI_DATA AS PARENT
LEFT OUTER JOIN ECOLI_DATA AS CHILD
ON PARENT.ID = CHILD.PARENT_ID
⭐ GROUP BY PARENT.ID
ID 별로 자식 수가 나오는 것을 볼 수 있다.

Share article