[SQL] 대장균들의 자식의 수 구하기
2024. 5. 4. 15:14ㆍ코딩 테스트
문제


개념
- WITH문을 사용하여 PARENT_ID의 개수를 먼저 파악
- IFNULL을 사용하여 NULL값을 0으로 대체(PARENT가 아닌 ID)
- ID에 PARENT_ID의 개수를 넣어야 하기 때문에 LEFT JOIN
- INNER JOIN하면 PARENT가 아닌 ID가 없어짐
정답
WITH TEMP AS (
SELECT PARENT_ID, COUNT(*) CNT
FROM ECOLI_DATA
GROUP BY 1)
SELECT E.ID, IFNULL(T.CNT,0) CHILD_COUNT
FROM ECOLI_DATA E LEFT JOIN TEMP T ON E.ID = T.PARENT_ID
ORDER BY 1
-- 다른 정답
SELECT I.ID, COUNT(P.ID) CHILD_COUNT
FROM ECOLI_DATA I LEFT JOIN ECOLI_DATA P ON I.ID = P.PARENT_ID
GROUP BY 1
ORDER BY 1'코딩 테스트' 카테고리의 다른 글
| [SQL] 입양 시각 구하기(2) (0) | 2024.05.04 |
|---|---|
| [SQL] 오프라인/온라인 판매 데이터 통합하기(프로그래머스) (0) | 2024.05.04 |
| [SQL] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2024.05.04 |
| [SQL] 잡은 물고기의 평균 길이 구하기 (0) | 2024.05.02 |
| [SQL] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기(프로그래머스) (0) | 2024.05.02 |