728x90
반응형
특정 세대의 대장균 찾기
수정 전
- 이전 포스팅 보면서 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 T
JOIN SECOND S ON T.ID= S.PARENT_ID
WHERE S.PARENT_ID = T.ID
ORDER BY ID;
수정 후1
- 근데 그래도 안됌...
- 로직이 틀렸나보다..
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 IS NULL -- 문자열 아니고 is null로 변경
)
SELECT T.ID
FROM ECOLI_DATA T
JOIN SECOND S ON T.ID= S.PARENT_ID -- where 굳이 필요없어서 없앰
ORDER BY ID;
수정 후 2
- 거의 다 했는데..
- 참조 관계 헷갈린게 너무 아쉽다.
- second의 id 가 Third의 parent_id가 되는 거니깐.. 주의할 것.
- 또 필요한 것만 가지고 올 것!
WITH SECOND AS (
SELECT S.ID -- parent_id 필요없음
FROM ECOLI_DATA F
JOIN ECOLI_DATA S ON F.ID = S.PARENT_ID
WHERE F.PARENT_ID IS NULL
)
SELECT T.ID
FROM ECOLI_DATA T
JOIN SECOND S ON T.PARENT_ID= S.ID -- 이거 잘 생각해야 해.. 참조 관계 헷갈리지 말기
ORDER BY T.ID;
728x90
반응형
'Data Science > MySQL' 카테고리의 다른 글
[프로그래머스 sql] 트리구조에서 cte recursive, 리프 노드 (0) | 2025.02.19 |
---|---|
[프로그래머스 sql] cte recursive (0) | 2025.02.19 |
[프로그래머스 sql] 윈도우 함수 (0) | 2025.02.16 |
[프로그래머스 sql] percent_rank(), NTILE() (0) | 2025.02.16 |
[프로그래머스 sql] 비트 연산(&), join 제발 쓸 것. 한 번에 한 정보만이니까 (0) | 2025.02.15 |