sql - Multiple CTE in single query -


is possible combine multiple ctes in single query arel? looking way result this:

with 'cte1' ( ... ), recursive 'cte2' ( ... ), 'cte3' ( ... ) select ... 'cte3' ... 

as can see, have 1 recursive cte , 2 non recursive.

use key word with once @ top , if of common table expressions (cte) recursive (rcte) have add keyword recursive @ top also, if not ctes recursive:

with recursive   cte1 (...)  -- can still non-recursive , cte2 (select ...            union            select ...)  -- recursive term , cte3 (...) select ... cte3 ... 

quoting manual:

if recursive specified, allows select subquery reference name.

bold emphasis mine. and, more insightful:

another effect of recursive with queries need not ordered: query can reference 1 later in list. (however, circular references, or mutual recursion, not implemented.) without recursive, with queries can reference sibling with queries earlier in with list.

bold emphasis mine again. meaning order of with clauses meaningless when recursive key word has been used.

btw, since cte1 , cte2 not referenced in outer select, never executed (unless referenced in cte3).


Comments

Popular posts from this blog

routing - AngularJS State management ->load multiple states in one page -

python - GRASS parser() error -

Swift game error message -