Introduction
The WITH clause helps you organize complex queries by breaking them into smaller parts. It makes your query easier to read and reuse.
WITH cte_name AS ( subquery ) SELECT * FROM cte_name;
WITH recent_orders AS ( SELECT * FROM orders WHERE order_date > '2024-01-01' ) SELECT * FROM recent_orders;
WITH sales AS ( SELECT product_id, SUM(quantity) AS total_sold FROM order_items GROUP BY product_id ), products AS ( SELECT id, name FROM products ) SELECT p.name, s.total_sold FROM sales s JOIN products p ON s.product_id = p.id;
WITH top_customers AS ( SELECT customer_id, SUM(amount) AS total_spent FROM sales GROUP BY customer_id ORDER BY total_spent DESC LIMIT 3 ) SELECT c.customer_id, c.total_spent FROM top_customers c;
WITH clause in PostgreSQL?WITH cte AS (SELECT id, name FROM users WHERE active = true) SELECT * FROM cte WHERE id < 5;
WITH cte1 AS (SELECT * FROM orders), cte2 (SELECT * FROM customers) SELECT * FROM cte1 JOIN cte2 ON cte1.customer_id = cte2.id;
Pass the test and this pattern moves unknown