반응형
SELECT
문제풀이
A. JOIN 사용
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
N차세대 자식수를 구할 땐 조인을 이용하여 생각해야한다
처음에 ID는 자식, PARENT_ID 는 부모를 의미하고있는데 문제에서 자식의 수를 구해야하므로 저 두 행 위치가 서로 바뀌어 정렬되어야한다. 그래서 JOIN을 할때 ON A.ID = B.PARENT_ID 을 하여 비교하면 쉽게 눈에 보인다
조인할 당시 ON A.ID = B.PARENT_ID 로 조인을 했기때문에 좌측 A.ID는 B.PARENT_ID 부모 포지션으로 같아지고
B.PARENT_ID의 자식 B.ID는 A.ID의 자식으로 볼 수 있다
즉 아래와 같은 테이블로 볼 수 있다
그래서 GROUP BY 와 COUNT를 이용하여 결과를 출력할 수 있다.
(단 COUNT에서 COUNT(B.PARENT_ID) 를 입력해도 결과는 같지만 출력되는 테이블은 다르므로 유의)
아래문제는 비슷한 유형이므로 연계해서 풀어보면 도움이 될 것 같다.
반응형
'필기ㆍ코테 공부 > SQL' 카테고리의 다른 글
[프로그래머스/MYSQL] 분기별 분화된 대장균의 개체 수 구하기 (2) | 2025.01.15 |
---|---|
[프로그래머스/MYSQL] 업그레이드 할 수 없는 아이템 구하기 (5) | 2025.01.14 |
[프로그래머스/MYSQL] 주문량이 많은 아이스크림들 조회하기 (1) | 2025.01.12 |
[프로그래머스/MYSQL] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (1) | 2025.01.05 |
[프로그래머스/MYSQL] 자동차 대여 기록에서 장기/단기 대여 구분하기 (0) | 2025.01.05 |