Une CTE (Common Table Expression), définie avec WITH, est un ensemble de résultats nommé et temporaire qui rend les requêtes complexes lisibles. PostgreSQL supporte pleinement les CTE, y compris les CTE récursifs (WITH RECURSIVE) pour parcourir des données hiérarchiques/arborescentes.
CTE basiques — construire des requêtes lisibles
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;
