sql / intermediate
Snippet
Strukturierung modularer Logik mit Common Table Expressions
Common Table Expressions (CTEs) definieren temporäre benannte Ergebnis-Mengen mittels der WITH-Klausel. Sie verbessern die Lesbarkeit von Abfragen und ermöglichen das Aufbrechen komplexer mehrstufiger Transformationen in modulare Logikblöcke innerhalb einer Anweisung.
snippet.sql
sql
1
2
3
4
5
6
7
8
9
10
11
12
13
WITH regional_sales AS (SELECT region, SUM(amount) AS total_salesFROM salesGROUP BY region),top_regions AS (SELECT regionFROM regional_salesWHERE total_sales > 100000)SELECT r.region, s.sale_date, s.amountFROM sales sJOIN top_regions r ON s.region = r.region;
Erklärung
1
WITH regional_sales AS (
Beginnt den CTE-Definitionsblock und vergibt den temporären Namen 'regional_sales'.
2
SELECT region, SUM(amount) AS total_sales
Aggregiert die Umsatzzahlen pro Region im ersten CTE-Block.
3
FROM sales
Fragt die Basis-Umsatztabelle für die anfängliche Aggregation ab.
4
GROUP BY region
Gruppiert einzelne Transaktionen nach der Region.
5
),
Schließt die erste CTE-Definition ab und bereitet weitere CTE-Definitionen vor.
6
top_regions AS (
Definiert eine zweite CTE namens 'top_regions', die die erste CTE nutzt.
7
SELECT region
Liest das Regions-Kürzel aus dem vorherigen CTE-Ergebnis aus.
8
FROM regional_sales
Referenziert die zuvor definierte CTE 'regional_sales' als Datenquelle.
9
WHERE total_sales > 100000
Filtert die aggregierten Gesamtumsätze auf umsatzstarke Regionen.
10
)
Schließt den zweiten CTE-Block ab.
11
SELECT r.region, s.sale_date, s.amount
Hauptabfrage zur Auswahl detaillierter Transaktionsattribute.
12
FROM sales s
Setzt die primäre Umsatztabelle als Hauptquelle fest.
13
JOIN top_regions r ON s.region = r.region;
Verknüpft die primären Zeilen mit der gefilterten CTE-Liste der Top-Regionen.