Concept Flow - WITH clause syntax
Start Query
Define CTE with WITH
Use CTE in main query
Execute main query
Return results
End
The WITH clause defines a temporary named result (CTE) used by the main query that follows.
WITH SalesCTE AS ( SELECT ProductID, SUM(Quantity) AS TotalSold FROM Sales GROUP BY ProductID ) SELECT * FROM SalesCTE WHERE TotalSold > 100;
| Step | Action | Evaluation | Result |
|---|---|---|---|
| 1 | Parse WITH clause | Define SalesCTE as grouped sum of Quantity by ProductID | SalesCTE ready with aggregated data |
| 2 | Execute CTE query | Calculate SUM(Quantity) per ProductID | Temporary table SalesCTE created |
| 3 | Execute main query | Select rows from SalesCTE where TotalSold > 100 | Filtered rows with TotalSold > 100 |
| 4 | Return results | Output filtered rows | Final result set returned |
| 5 | End | No more steps | Query execution complete |
| Variable | Start | After Step 2 | After Step 3 | Final |
|---|---|---|---|---|
| SalesCTE | undefined | Aggregated data by ProductID | Filtered rows with TotalSold > 100 | Filtered result set |
WITH clause syntax: WITH cte_name AS ( subquery ) SELECT * FROM cte_name; - Defines a temporary named result (CTE) - CTE is used by the main query - CTE exists only during query execution
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