🔹 WITH (CTE): делим сложный SQL на куски 🔹 Как WITH (CTE) упрощает длинные запросы и помогает с рекурсией? 🔸CTE решает проблему монолитных вложенных подзапросов: выносите части логики в именованные блоки ради modularity и понятности запроса.
🔸WITH — синтаксис для CTE (Common Table Expression). Применяйте, когда нужно переиспользовать промежуточный результат или реализовать рекурсия для обхода иерархий.
🔸Короткие примеры: сначала агрегат для фильтрации; затем рекурсивный обход.
WITH sales_totals AS ( SELECT user_id, SUM(amount) AS total FROM orders GROUP BY user_id ) SELECT u.id, u.name, st.total FROM users u JOIN sales_totals st ON u.id = st.user_id WHERE st.total > 1000;
-- рекурсия WITH RECURSIVE deps AS ( SELECT id, parent_id FROM nodes WHERE id = 1 UNION ALL SELECT n.id, n.parent_id FROM nodes n JOIN deps d ON n.parent_id = d.id ) SELECT * FROM deps;
📚 WITH/CTE даёт modularity, раздельную логику и удобный инструмент для рекурсии.
➡️ Мы в Telegram - Сетке - ВК Буду рад вашей реакции здесь⬇️
В этом посте были ссылки, но мы их удалили по правилам Сетки