SqlCte
- class SqlCte(alias, query)
A Common Table Expression for use in WITH clauses. Created via
SQL.cte(alias, query). Inherits from SqlObj.- Parameters:
alias – CTE name string (may include column list, e.g.
'cte_name(col1, col2)').query – A
SqlQuery(SQL.select(),SQL.insert(),SQL.update(), orSQL.delete()with RETURNING) for the CTE body.
SQL.cte('active_users', SQL.select().from_table('users').column('*') .where('active', '=', True)) # active_users AS ( # SELECT * # FROM users # WHERE active = %s # ) # args: [True]
- materialized()
Mark the CTE as MATERIALIZED (forces the planner to evaluate it separately).
SQL.cte('expensive', query).materialized() # expensive AS MATERIALIZED ( # ... # )