CTE (Common Table Expression), definovaný pomocí WITH, je pojmenovaná dočasná sada výsledků, která činí složité dotazy čitelnými. PostgreSQL plně podporuje CTE, včetně rekurzivních CTE (WITH RECURSIVE) pro procházení hierarchických/stromových dat.
Základní CTE — čitelné vytváření dotazů
sql
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;
