CTE(Common Table Expression),通过 WITH 定义,是一个命名的临时结果集,使复杂查询更易读。PostgreSQL 完全支持 CTE,包括用于遍历分层/树形数据的 recursive CTE(WITH RECURSIVE)。
基本 CTE — 易读的查询构建
sql
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;
