cte

with

  cte_name(column_list)
as
(
    query
)

statement
with recursive

  cte_name(column_list)
as
(
    query
    union
    select * from cte_name
)

statement