[Programmers] 대장균들의 자식의 수 구하기 (MySQL)

2024. 4. 13. 00:16·코테/SQL
728x90
 

프로그래머스

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

programmers.co.kr

 

풀이

 

재귀를 이용해서.. 증가하는 배열을 하나 만들어준 뒤, 테이블 크기만큼만 돌아서 0으로 전부 설정되어있는 cnt테이블을 만들었다.

그리고 자식의 수를 카운팅한 배열 AA와 LEFT JOIN 해주는 방식으로 풀었다.

 

WITH RECURSIVE cnt AS(
    SELECT 1 AS ID, 0 AS CHILD_COUNT
    UNION ALL
    SELECT ID+1 AS ID, 0 AS CHILD_COUNT
    FROM cnt
    WHERE ID < (SELECT COUNT(*) FROM ECOLI_DATA)
), AA AS(
    SELECT PARENT_ID, COUNT(*) AS CHILD_COUNT
    FROM ECOLI_DATA
    GROUP BY PARENT_ID
    HAVING PARENT_ID IS NOT NULL
)

SELECT B.ID, CASE WHEN A.CHILD_COUNT IS NULL THEN 0 ELSE A.CHILD_COUNT END AS CHILD_COUNT
FROM AA A RIGHT JOIN cnt B ON A.PARENT_ID = B.ID;

 

 

가독성 좋은 코드로 개선

 

SELECT PARENT.ID, COUNT(CHILD.PARENT_ID) AS CHILD_COUNT
FROM ECOLI_DATA PARENT LEFT JOIN ECOLI_DATA CHILD 
ON PARENT.ID = CHILD.PARENT_ID
GROUP BY PARENT.ID
ORDER BY PARENT.ID;
728x90

'코테 > SQL' 카테고리의 다른 글

[Programmers] 물고기 종류 별 잡은 수 구하기 (MySQL)  (0) 2024.04.15
[Programmers] 월별 잡은 물고기 수 구하기 (MySQL)  (0) 2024.04.14
[Programmers] 물고기 종류 별 대어 찾기 (MYSQL)  (0) 2024.03.21
[Programmers] 부서별 평균 연봉 조회하기 (MYSQL)  (1) 2024.03.20
[Leetcode] SQL50 문제 (MYSQL)  (0) 2024.02.08
'코테/SQL' 카테고리의 다른 글
  • [Programmers] 물고기 종류 별 잡은 수 구하기 (MySQL)
  • [Programmers] 월별 잡은 물고기 수 구하기 (MySQL)
  • [Programmers] 물고기 종류 별 대어 찾기 (MYSQL)
  • [Programmers] 부서별 평균 연봉 조회하기 (MYSQL)
DROPDEW
DROPDEW
💻 Developer | 기록하지 않으면 존재하지 않는다
  • DROPDEW
    제 2장 1막
    DROPDEW
  • 전체
    오늘
    어제
    • Dev (443)
      • App·Android (1)
      • BE (50)
        • HTTP 웹 기본 지식 (8)
        • 스프링 입문 - 코드로 배우는 스프링 부트, 웹 .. (12)
        • 스프링부트와 JPA 활용 (11)
        • 스프링부트 시큐리티 & JWT (0)
        • 실전 자바 기본, 중급 (1)
        • PHP (11)
      • FE·Client (23)
        • HTML (1)
        • React (19)
        • Unity (1)
      • Data (28)
        • AI (7)
        • Bigdata (6)
        • Database (1)
        • Python (0)
        • 빅데이터분석기사 (13)
      • Infra (1)
      • Activity (9)
        • Intern (0)
        • SK AI Dream Camp (2)
        • 구름톤 유니브 4기 (1)
        • 리모트 인턴십 6기 (3)
        • 봉사활동 (0)
        • 부스트캠프 AI Tech 8기 (3)
      • CS (8)
      • 취준 (12)
        • 자격증 (4)
        • 인적성·NCS (6)
        • 코테·필기·면접 후기 (2)
      • 코테 (270)
        • Algorithm (222)
        • SQL (35)
        • 정리 (13)
      • 인사이트 (27)
        • 금융경제뉴스 (7)
        • 금융용어·지식 (2)
        • 북마크 (7)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    매개변수탐색
    투포인터
    누적합
    다이나믹프로그래밍
    너비우선탐색
    정렬
    구현
    문자열
    백준
    최단경로
    이분탐색
    수학
    그래프이론
    자료구조
    그리디알고리즘
    티스토리챌린지
    오블완
    브루트포스 알고리즘
    그래프탐색
    시뮬레이션
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
DROPDEW
[Programmers] 대장균들의 자식의 수 구하기 (MySQL)
상단으로

티스토리툴바