https://school.programmers.co.kr/learn/courses/30/lessons/299305
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
✅ 문제
대장균 개체의 ID(ID)와 자식의 수(CHILD_COUNT)를 출력하는 SQL 문을 작성해 주세요. 자식이 없다면 자식의 수는 0으로 출력해 주세요. 이때 결과는 개체의 ID에 대해 오름차순 정렬해 주세요.
✅ 나의 코드
SELECT ID,
(SELECT
COUNT(ID)
FROM ECOLI_DATA AS B
WHERE A.ID = B.PARENT_ID
) AS CHILD_COUNT
FROM ECOLI_DATA AS A
나는 가장 먼저 생각난거는 스칼라 서브쿼리를 쓰는게 생각나서 이렇게 풀었고 정답도 나왔다
그리고 나서 다른풀이는 어떻게 풀었을까 보게되었다.
✅ 다른풀이

LEFT JOIN을 사용하고 GROUP BY를 사용해서 풀었다
PARENT를 기준으로 부모의 아이디(CHILD.PARENT_ID)와 부모 자신의 아이디 (PARENT.ID)로 JOIN을 해주었습니다.
SELECT절에서 집계 함수 없이 나열된 칼럼 이름이나 표현식은 GROUP BY절에 반드시 포함되어야 합니다.
위와 같은 GROUP BY절의 특징 때문에 집계 함수인 COUNT(CHILD.ID)를 제외한 PARENT.ID를 GROUP BY절에 반드시 포함시켜야 합니다.
'Algorithm' 카테고리의 다른 글
| [알고리즘] 기본 정렬 알고리즘 (Sorting Algorithms) (4) | 2025.08.06 |
|---|---|
| [SQL 알고리즘] FrontEnd 개발자 찾기 (3) | 2025.07.31 |
| [SQL 알고리즘] SolvedSql - 배송 예정일 예측 성공과 실패 (1) | 2025.06.02 |
| [SQL 알고리즘] SolvedSql - 지역별 주문의 특징 (0) | 2025.05.31 |
| [SQL 알고리즘] SolveSql -복수 국적 메달 수상한 선수 찾기 (0) | 2025.05.15 |