A CTE (Common Table Expression), defined with WITH, is a named temporary result set that makes complex queries readable. PostgreSQL fully supports CTEs, including recursive CTEs (WITH RECURSIVE) for traversing hierarchical/tree data.
Basic CTEs — readable query building
active_users (
id, name users active
),
order_counts (
user_id, () cnt orders user_id
)
u.name, oc.cnt
active_users u
order_counts oc u.id oc.user_id;
