문제: 대장균 개체(ID)와 자식의 수(CHILD_COUNT)를 출력하는 SQL 작성
- 자식이 없다면 자식의 수는 0으로 출력
- 결과는 개체의 ID에 대해 오름차순 정렬
해결방법:
1. ECOLI_DATA 테이블에서 'ID' 컬럼을 구한다 → 테이블에서의 전체 개체(ID) 출력
2. ECOLI_DATA 테이블에서 GROUP BY 로 'PARENT_ID' 별 레코드 수 계산 → 각 PARENT 별 자식 수 카운트 가능
3. 자식이 없는 ID 도 있으므로 1번 결과 테이블과 2번 결과 테이블을 LEFT OUTER JOIN 을 해서 모든 ID 에 대해 자식 수가 표시될 수 있도록 함.
4. 이 때, 자식 수가 없는 경우 NULL 이므로 IFNULL() 규칙으로 처리해주면 된다.
코드 예시
SELECT A.ID, IFNULL(B.CHILD_COUNT, 0) AS CHILD_COUNT
FROM (SELECT ID
FROM ECOLI_DATA) AS A
LEFT OUTER JOIN
(SELECT PARENT_ID AS ID, COUNT(*) AS CHILD_COUNT
FROM ECOLI_DATA
GROUP BY PARENT_ID) AS B
ON A.ID = B.ID
;
'[SQL] 연습' 카테고리의 다른 글
[MySQL] 프로그래머스 경기도에 위치한 식품창고 목록 출력하기 (0) | 2024.08.18 |
---|---|
[SQL] 프로그래머스 특정 형질을 가지는 대장균 찾기 (0) | 2024.08.17 |
[sql] 프로그래머스 이름에 el이 들어가는 동물 찾기 (0) | 2022.11.20 |
[sql] 프로그래머스 없어진 기록 찾기 (0) | 2022.11.19 |
[sql] 프로그래머스 NULL 처리하기 (0) | 2022.11.18 |