Introduction
The WITH clause helps you organize complex queries by creating temporary named results you can use inside your main query.
WITH temporary_name AS ( subquery ) SELECT columns FROM temporary_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(amount) AS total_sales FROM orders GROUP BY product_id ), products AS ( SELECT id, name FROM products ) SELECT p.name, s.total_sales FROM sales s JOIN products p ON s.product_id = p.id;
WITH high_value_customers AS ( SELECT customer_id, SUM(total) AS total_spent FROM orders GROUP BY customer_id HAVING SUM(total) > 1000 ) SELECT customer_id, total_spent FROM high_value_customers;
WITH clause in SQL?cte_example?WITH numbers AS (SELECT 1 AS num UNION ALL SELECT 2 UNION ALL SELECT 3) SELECT SUM(num) FROM numbers;
WITH cte1 AS SELECT * FROM employees SELECT * FROM cte1;
WITH cte1 AS (SELECT id, salary FROM employees WHERE department = 'Sales'), cte2 AS (SELECT id, bonus FROM bonuses) SELECT cte1.id, cte1.salary, cte2.bonus FROM cte1 LEFT JOIN cte2 ON cte1.id = cte2.id;
Pass the test and this pattern moves unknown