Một CTE (Common Table Expression), được định nghĩa bằng WITH, là một tập kết quả tạm thời có tên giúp các truy vấn phức tạp dễ đọc hơn. PostgreSQL hỗ trợ đầy đủ CTE, bao gồm cả recursive CTE (WITH RECURSIVE) để duyệt dữ liệu phân cấp/dạng cây.
CTE cơ bản — xây dựng truy vấn dễ đọc
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;
