자신에게 친절할 것 :)
728x90
반응형

2025/02/19 3

[프로그래머스 sql] 트리구조에서 cte recursive, 리프 노드

멸종위기의 대장균 찾기 - 아니 무슨 대장균 찾기의 끝이 없냐...  수정 전 - 방금 전 한 대로 cte recursive 를 써보려는 데 런타임 에러가 뜸...- 또, cte에서는 not in을 쓸 수 없대. WITH RECURSIVE GEN AS ( SELECT ID, 1 AS GENERATION FROM ECOLI_DATA WHERE PARENT_ID IS NULL -- 1세대 UNION ALL SELECT A.ID, B.GENERATION + 1 AS GENERATION FROM ECOLI_DATA A, GEN B WHERE A.PARENT_ID NOT IN (B.ID))SELECT COUNT(ID) AS COUNT, GENER..

Data Science/MySQL 2025.02.19

[프로그래머스 sql] cte recursive

- 이전 문제 풀이 다른 사람들이 한 것을 보다가 재귀를 사용하신 분이 있었는데,depth를 활용해서 하는 게 아직도 익숙하지 않아서 그분의 답을 보며 아래에 정리하면서 공부하려고 함.  앞이랑 똑같은  문제이다.  특정 세대의 대장균 찾기WITH RECURSIVE RE AS ( -- (1) 초기 조건: 최상위 부모 노드 찾기 (Depth = 1) SELECT ID, 1 AS DEPTH FROM ECOLI_DATA WHERE PARENT_ID IS NULL UNION ALL -- (2) 재귀적으로 하위 노드를 탐색하여 Depth 증가 SELECT A.ID, B.DEPTH + 1 AS DEPTH FROM ECOLI_..

Data Science/MySQL 2025.02.19

[프로그래머스 sql] join 시 참조 관계 주의 할 것.

특정 세대의 대장균 찾기 수정 전- 이전 포스팅 보면서 cte로 최대한 만들었음.- 근데.. 굴러는 가는데 값이 안 뜸...ㅎ (그게 어디냐...)WITH SECOND AS ( SELECT S.ID, S.PARENT_ID FROM ECOLI_DATA F JOIN ECOLI_DATA S ON F.ID = S.PARENT_ID WHERE F.PARENT_ID = 'NULL')SELECT T.ID FROM ECOLI_DATA TJOIN SECOND S ON T.ID= S.PARENT_IDWHERE S.PARENT_ID = T.IDORDER BY ID; 수정 후1- 근데 그래도 안됌...- 로직이 틀렸나보다..WITH SECOND AS ( SELECT S.ID, S.PARENT_ID ..

Data Science/MySQL 2025.02.19
728x90
반응형