Именованное временное множество результатов в рамках одного запроса. Синтаксис: WITH name AS (SELECT ...) SELECT ... FROM name. Улучшает читаемость и позволяет рекурсию.
WITH recent_orders AS (
SELECT * FROM orders WHERE created_at > NOW() - INTERVAL '7 days'
)
SELECT u.name, COUNT(r.id) FROM users u
LEFT JOIN recent_orders r ON u.id = r.user_id GROUP BY u.id, u.name;Рекурсивный CTE: WITH RECURSIVE для деревьев, последовательностей.