-
SQL - Recursive CTESQL 정리 2024. 4. 24. 17:20
MySQL Recursive CTE (mysqltutorial.org)
Recursive SQL Expression Visually Explained | Built In
이집 설명이 야무지다, 들어가서 보면 이런식으로
select column, CTE, recursive_query 모두 다 설명해주고 있다.
Denis Lukichev 정확히는 이분이 쓰 글인데 다른 글은 없다.. 슬프다..
It’s important to note that the base query doesn’t involve R, however, the recursive query does reference R.
At first glance, it seems like an infinite loop. To compute R, we need to compute R.
But there’s a catch. R doesn’t reference itself, it just references the previous result.
And when the previous result is an empty table, the recursion stops.
It might help to think of it as an iteration rather than a recursion.
원래 파이썬에서 반복문을 사용하면 for조건 내에서 완료 후 null인가 none인가 값을 퉷 하고
반복 종료하는데 이것이 SQL 반복문에서도 적용 되는 듯 하다.
그리고 왜 재귀 쿼리인데 empty table를 뱉냐면 그 이전 결과값이 그래서란다
'
더보기( -> 제한 조건을 거는 것인가?)
맞다
Here’s what happens.
The base query executes first, taking whatever it needs to compute the result R0.
The second recursive query is executed taking R0 as input — that is R references R0 in the recursive query when first executed.
The recursive query produces the result R1, and that is what R will reference at the next invocation, and so on until a recursive query returns an empty result.
At that point, all intermediate results are combined together.
재귀 과정 이야기.
참고점.
활용
더보기이것을 활용하면
tree 구조의 자료형에서 가장 상위값이 무엇인지를 찾을 수 있다.
예시는
'SQL 정리' 카테고리의 다른 글
SQL - UNION (0) 2024.04.23 SQL - group by 연산자 (0) 2024.04.22 SQL - ' ' / " " / ` ` (0) 2024.04.18 SQL - With - CTE (0) 2024.04.18 SQL - field vs column (0) 2024.04.09