CTE (Common Table Expression), apibrėžta naudojant WITH, yra pavadinta laikiną rezultatų aibė, kuri sudėtingas užklausas padaro lengvai suprantamas. PostgreSQL visiškai palaiko CTE, įskaitant rekursyvias CTE (WITH RECURSIVE) hierarchinių/medžio duomenų peržiūrai.
Paprastos CTE — lengvai suprantama užklausų konstravimo
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;
