CTE(Common Table Expression)は**WITHで定義される名前付きの一時的な結果セットで、複雑なクエリを読みやすくします。PostgreSQLはCTEを完全にサポートしており、階層的/ツリー構造のデータを走査するための再帰的な**CTE(WITH RECURSIVE)も含まれています。
基本的なCTE — 読みやすいクエリの構築
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;
