sql / intermediate
Snippet
Structuring Complex Multi-Step Queries using CTEs
Common Table Expressions (CTEs) define temporary named result sets that exist only for the scope of a single query. They break complex subqueries into modular, readable steps and allow subsequent CTEs to reference earlier ones.
snippet.sql
sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
WITH RegionalSales AS (SELECTregion_id,SUM(total_amount) AS total_salesFROM sales_ordersGROUP BY region_id),AverageSales AS (SELECT AVG(total_sales) AS avg_regional_salesFROM RegionalSales)SELECTr.region_id,r.total_salesFROM RegionalSales r, AverageSales aWHERE r.total_sales > a.avg_regional_sales;
Breakdown
1
WITH RegionalSales AS (
Declares the first CTE named RegionalSales to compute total sales per region.
2
GROUP BY region_id
Aggregates revenue figures for each individual region.
3
AverageSales AS (
Defines a second CTE that references the output of the first CTE to compute the global average.
4
WHERE r.total_sales > a.avg_regional_sales;
Filters for regions whose total sales exceed the calculated average across all regions.