Introduction
Common Table Expressions (CTEs) help you organize complex queries by creating temporary named result sets you can use inside your main query.
WITH cte_name AS ( SELECT column1, column2 FROM table_name WHERE condition ) SELECT * FROM cte_name;
WITH recent_orders AS ( SELECT order_id, customer_id, order_date FROM orders WHERE order_date > '2024-01-01' ) SELECT * FROM recent_orders;
WITH top_customers AS ( SELECT customer_id, SUM(amount) AS total_spent FROM sales GROUP BY customer_id HAVING SUM(amount) > 1000 ) SELECT customer_id FROM top_customers;
WITH cte1 AS ( SELECT * FROM employees WHERE department = 'Sales' ), cte2 AS ( SELECT * FROM employees WHERE department = 'HR' ) SELECT * FROM cte1 UNION ALL SELECT * FROM cte2;
WITH high_salary AS ( SELECT employee_id, salary FROM employees WHERE salary > 70000 ) SELECT employee_id, salary FROM high_salary ORDER BY salary DESC;
WITH clause (Common Table Expression) in a MySQL query?WITH SalesCTE AS ( SELECT product_id, SUM(quantity) AS total_qty FROM sales GROUP BY product_id ) SELECT * FROM SalesCTE WHERE total_qty > 100;
WITH cte AS ( SELECT id, name FROM users ) SELECT * FROM cte WHERE age > 30;
Pass the test and this pattern moves unknown