728x90
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
대장균 개체의 ID(ID)와 자식의 수(CHILD_COUNT)를 출력하는 SQL 문을 작성해주세요. 자식이 없다면 자식의 수는 0으로 출력해주세요. 이때 결과는 개체의 ID 에 대해 오름차순 정렬해주세요.
1. 자식의 수 COUNT
대장균의 자식 수를 구하기 위해서 JOIN을 활용한다.
주어진 데이터 테이블은 ECOLI_DATA 한 가지로, self join을 활용할 예정이다.

문제에서 주어진 결과 테이블을 확인하면 CHILD를 가지고 있지 않은 대장균의 결과까지 모두 출력하고 있음을 알 수있다.
JOIN을 사용할 경우 기본적으로 Inner Join을 의미하는데, 이럴 경우 해당하는 값이 없다면 출력되지 않는다.
그래서 이번 문제에서는 Outer Join, LEFT JOIN을 사용한다.
SELECT A.ID, COUNT(B.ID) AS CHILD_COUNT
FROM ECOLI_DATA AS A LEFT JOIN ECOLI_DATA AS B
이제 A와 B의 어느 값을 기준으로 JOIN을 할 것인지 설정해야한다.
문제에서 대장균이 가지는 자식의 수 즉, ID가 가지는 PARENT_ID의 개수를 의미하는 것이기 때문에
ON A.ID = B.PARENT_ID
A의 ID와 B의 PARENT_ID를 연결한다.
2. 전체코드
더보기
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 ID
ORDER BY ID
728x90
'연습장 > SQL' 카테고리의 다른 글
[프로그래머스] Lv3. 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기 (MySQL) (0) | 2024.08.15 |
---|---|
[프로그래머스] Lv.3 자동차 대여 기록에서 대여중/대여 가능 여부 구분하기 (MySQL) (0) | 2024.08.10 |
[프로그래머스] Lv.3 대장균 크기에 따라 분류하기 1 (MySQL) (0) | 2024.08.09 |
[프로그래머스] Lv.3 부서별 평균 연봉 조회하기 (MySQL) (0) | 2024.08.08 |
[프로그래머스] Lv.3 조건에 맞는 사용자 정보 조회하기 (MySQL) (0) | 2024.08.07 |
댓글