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