CTE (Common Table Expression), zdefiniowane za pomocą WITH, to nazwany tymczasowy zestaw wyników, który czyni złożone zapytania czytelnym. PostgreSQL w pełni obsługuje CTE, w tym rekurencyjne CTE (WITH RECURSIVE) do przeglądania danych hierarchicznych/drzewiastych.
Podstawowe CTE — czytelne budowanie zapytań
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;
