A recursive query must consist of the UNION ALL of an initial query and an iteration query. The only set operation allowed
in the iteration query is UNION ALL. A recursive reference to the name of the common table expression can only appear in
the iteration query, and must not be in a SELECT that uses DISTINCT, ORDER BY, or an aggregate function. A recursive reference
also cannot appear on the NULL-supplying side of an outer join, or in a subquery.