반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 자연어처리
- 데이터시각화
- productmarketfit
- nlp
- ERD
- 태블로
- OKR
- Computer Vision
- 데이콘
- omtm
- 인공지능
- 시각화
- 파인튜닝
- product
- pmf
- 머신러닝
- 데이터분석
- 딥러닝
- 모델링
- 그로스해킹
- 데이터모델링
- 컴퓨터비전
- DACON
- tableau
- dl
- Market
- 언어지능딥러닝
- fit
Archives
- Today
- Total
블로그
[Programmers] 301651 - 멸종위기의 대장균 찾기 WITH RECURSIVE SQL MySQL 본문
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/301651
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
프로그래머스에서 멸종위기의 대장균 찾기 문제에서 사용한 WITH RECURSIVE 절에 대해 알아보자
WITH RECURSIVE는 쿼리 안에서 재귀적으로 자기 자신을 참조할 수 있는 임시 테이블을 생성한다.
계층 구조나 트리 구조 데이터를 탐색할 때 주로 사용된다.
멸종위기의 대장균 찾기 정답 코드를 보면서 확인해보자 !
with recursive tmp as # tmp라는 임시 테이블 생성
(
select id, parent_id, 1 as generation
from ecoli_data
where parent_id is null # 최상위 노드 추출
union all # 재귀적 쿼리 : 첫 번째 쿼리에서 찾은 데이터를 바탕으로, 부모-자식 관계를 기반으로 하위 노드를 찾는다
select s.id, s.parent_id, tmp.generation + 1
from tmp join ecoli_data s
on tmp.id = s.parent_id # s.parent_id 값이 존재하지 않으면 재귀 종료
)
select count(*) count, generation
from tmp
where id not in # 부모 노드에 포함되지 않는 노드 = 자식이 없는 노드 id 찾기
(
select distinct parent_id
from tmp
where parent_id is not null
)
group by generation
order by 2;
728x90
반응형
'공부' 카테고리의 다른 글
[그로스해킹] AARRR - (1) Acquisition (0) | 2024.10.28 |
---|---|
[그로스해킹] PMF (0) | 2024.10.28 |
[Tableau] 6일차 테이블 계산식, 세부 수준 계산식(LOD) 이해 (0) | 2024.08.28 |
[Tableau] 5일차 맵, 지리 정보를 활용한 시각화 (0) | 2024.08.28 |
[웹크롤링] 웹 크롤링 정리 (0) | 2024.08.04 |