sql / intermediate
Snippet
Strukturierung komplexer mehrstufiger Abfragen mit CTEs
Common Table Expressions (CTEs) definieren temporäre benannte Ergebnismengen, die nur für die Dauer einer einzelnen Abfrage existieren. Sie unterteilen komplexe Unterabfragen in modulare, lesbare Schritte und ermöglichen es nachfolgenden CTEs, auf vorherige zu verweisen.
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;
Erklärung
1
WITH RegionalSales AS (
Deklariert die erste CTE namens RegionalSales zur Berechnung der GesamtuMSätze pro Region.
2
GROUP BY region_id
Aggregiert die Umsatzzahlen für jede einzelne Region.
3
AverageSales AS (
Definiert eine zweite CTE, die auf das Ergebnis der ersten verweist, um den Gesamtdurchschnitt zu berechnen.
4
WHERE r.total_sales > a.avg_regional_sales;
Filtert nach Regionen, deren Gesamtumsatz über dem berechneten Durchschnitt aller Regionen liegt.