-
[mysql] SELECT - 특정 세대의 대장균 찾기프로그래머스/쿼리 2025. 3. 19. 12:59
재귀 이용
WITH RECURSIVE EcoliHierarchy AS ( -- 1세대 대장균: PARENT_ID가 NULL인 개체 SELECT ID, PARENT_ID, 1 AS generation FROM ECOLI_DATA WHERE PARENT_ID IS NULL UNION ALL -- 2세대 대장균: 부모가 1세대인 개체 SELECT e.ID, e.PARENT_ID, eh.generation + 1 FROM ECOLI_DATA e JOIN EcoliHierarchy eh ON e.PARENT_ID = eh.ID WHERE eh.generation = 1 UNION ALL -- 3세대 대장균: 부모가 2세대인 개체 SELECT e.ID, e.PARENT_ID, eh.generation + 1 FROM ECOLI_DATA e JOIN EcoliHierarchy eh ON e.PARENT_ID = eh.ID WHERE eh.generation = 2 ) -- 3세대 대장균의 ID 출력 SELECT ID FROM EcoliHierarchy WHERE generation = 3 ORDER BY ID;
'프로그래머스 > 쿼리' 카테고리의 다른 글
[oracle] IS NULL - NULL 처리하기 (0) 2025.03.25 [oracle] GROUP BY - 년, 월, 성별 별 상품 구매 회원 수 구하기 (0) 2025.03.24 [oracle] JOIN - 5월 식품들의 총매출 조회하기 (0) 2025.03.24 [oracle] String, Date - 오랜 기간 보호한 동물(2) (0) 2025.03.23 [mysql] SELECT - 대장균의 크기에 따라 분류하기 2 (0) 2025.03.19