yoon-kyeong
이세계 기록장
yoon-kyeong
전체 방문자
오늘
어제
  • 분류 전체보기 (43)
    • 운영체제 (3)
    • SQL (28)
    • Backend (3)
      • JAVA (2)
      • 인프런 워밍업 클럽.. (1)
    • AI (6)
      • deep daiv. (2)
      • 이어드림스쿨 4기 (0)
      • LG Aimers .. (1)
    • Project (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

티스토리

hELLO · Designed By 정상우.
yoon-kyeong

이세계 기록장

[SQL 고득점 Kit] 299305. 대장균들의 자식의 수 구하기
SQL

[SQL 고득점 Kit] 299305. 대장균들의 자식의 수 구하기

2024. 7. 3. 14:52

문제

https://school.programmers.co.kr/learn/courses/30/lessons/299305

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이

SELECT P.ID AS ID, COUNT(C.ID) AS CHILD_COUNT
FROM ECOLI_DATA P
LEFT JOIN ECOLI_DATA C ON P.ID = C.PARENT_ID
GROUP BY P.ID
ORDER BY P.ID;

접근 방법

  1. 부모 개체와 자식 개체를 연결하기 위해 같은 테이블을 조인
  2. 자식 개체가 없는 경우도 포함하기 위해 LEFT JOIN
  3. 각 부모 개체의 자식 개체 수를 세기 위해 GROUP BY와 COUNT

 

  • FROM ECOLI_DATA P: ECOLI_DATA 테이블을 P라는 별칭으로 참조. P는 부모 개체
  • LEFT JOIN ECOLI_DATA C ON P.ID = C.PARENT_ID: 다시 ECOLI_DATA 테이블을 C로 참조. C는 자식 개체 조인
    • 조건은 P.ID = C.PARENT_ID로, 부모 개체의 ID와 자식 개체의 PARENT_ID가 일치하는 경우
  • COUNT(C.ID) AS CHILD_COUNT: 자식 개체의 ID를 세어서 자식의 수를 계산. 자식 개체가 없는 경우 COUNT(C.ID)는 0
  • GROUP BY P.ID: 부모 개체의 ID를 기준으로 그룹화하여 각 부모 개체별 자식 개체 수를 계산



 

'SQL' 카테고리의 다른 글

[SQL 고득점 Kit] 299307. 대장균의 크기에 따라 분류하기 1  (0) 2024.07.04
[SQL 고득점 Kit] 301646. 특정 형질을 가지는 대장균 찾기  (0) 2024.07.03
[SQL 고득점 Kit] 298518. 특정 물고기를 잡은 총 수 구하기  (0) 2024.07.03
[SQL 고득점 Kit] 298517. 가장 큰 물고기 10마리 구하기  (0) 2024.07.03
[SQL 고득점 Kit] 293258. 잔챙이 잡은 수 구하기  (0) 2024.07.03

티스토리툴바