CTE (Common Table Expression) ซึ่งกำหนดด้วย WITH เป็นชุดผลลัพธ์ชั่วคราวที่มีชื่อ ทำให้ query ที่ซับซ้อนอ่านง่ายขึ้น PostgreSQL รองรับ CTE อย่างเต็มที่ รวมถึง recursive CTE (WITH RECURSIVE) สำหรับการท่องผ่านข้อมูลแบบลำดับชั้น/ต้นไม้
CTE พื้นฐาน การสร้าง query ที่อ่านง่าย
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;
