프로그래머스/My SQL

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

싱싱한복초이 2024. 12. 11. 10:10

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

[문제]

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

 

[나의 풀이]

WITH D2 AS (
SELECT ID, PARENT_ID
FROM ECOLI_DATA)

SELECT D1.ID, COUNT(D2.PARENT_ID) CHILD_COUNT
FROM ECOLI_DATA D1 
LEFT JOIN D2
ON D1.ID = D2.PARENT_ID
GROUP BY D1.ID
ORDER BY D1.ID;

 

[다른 풀이]

SELECT 
PARENT.ID, (
SELECT COUNT(*)
FROM ECOLI_DATA CHILD
WHERE PARENT.ID = CHILD.PARENT_ID) AS CHILD_COUNT
FROM ECOLI_DATA PARENT
ORDER BY PARENT.ID;
SELECT PARENT.ID, COUNT(CHILD.ID) CHILD_COUNT
FROM ECOLI_DATA PARENT LEFT JOIN ECOLI_DATA CHILD
ON PARENT.ID = CHILD.PARENT_ID
GROUP BY PARENT.ID
ORDER BY PARENT.ID;