Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Fensterfunktionen | Einige Zusätzliche Themen
Fortgeschrittene Techniken in SQL
course content

Kursinhalt

Fortgeschrittene Techniken in SQL

Fortgeschrittene Techniken in SQL

1. Acid
2. Abfrageoptimierung.Indizes
3. Einige Zusätzliche Themen

book
Fensterfunktionen

Fensterfunktionen sind eine Kategorie von SQL-Funktionen, die Berechnungen über eine Reihe von Zeilen durchführen, die mit der aktuellen Zeile innerhalb eines definierten Fensters oder einer Partition verbunden sind.
Sie werden verwendet, um Berechnungen und Analysen über eine Teilmenge von Zeilen ohne Reduzierung der Ergebnismenge durchzuführen, im Gegensatz zu Aggregatfunktionen, die typischerweise die Anzahl der von einer Abfrage zurückgegebenen Zeilen reduzieren.

Erklärung

Angenommen, wir haben die folgende Sales-Tabelle:

Wenn unser Ziel darin besteht, den Gesamtumsatz für jedes spezifische Produkt zu berechnen und ihn in einer zusätzlichen Spalte innerhalb der Haupttabelle anzuzeigen, anstatt eine neue gruppierte Tabelle zu erstellen, könnte das Ergebnis wie folgt aussehen:

Aber wie können wir das machen?
Die Verwendung von GROUP BY ist für diese Aufgabe nicht geeignet, da diese Klausel die Anzahl der Zeilen reduziert, indem sie sie nach bestimmten Kriterien gruppiert, was dazu führt, dass nur die IDs und ihre entsprechenden Summenwerte zurückgegeben werden.

Deshalb sind Fensterfunktionen unerlässlich, um dieses Problem zu lösen.

Implementierung

Wir können das erforderliche Ergebnis mit der folgenden Abfrage erhalten:

1234567
SELECT sales_id, product_id, sales_date, amount, SUM(amount) OVER (PARTITION BY product_id) AS Total_Revenue_Per_Product FROM Sales;
copy

Eine allgemeine Syntax zur Erstellung einer Fensterfunktion kann wie folgt beschrieben werden:

  • SELECT: Gibt an, dass eine Abfrage beginnt;
  • aggregation_func(): Die Aggregatfunktion (z.B. SUM, AVG, COUNT), die eine Berechnung über eine Menge von Zeilen durchführt, die durch das Fenster definiert sind;
  • OVER: Schlüsselwort, das die Fensterfunktion einleitet;
  • PARTITION BY: Teilt das Ergebnisset in Partitionen basierend auf den Werten der angegebenen Spalte(n). Die Fensterfunktion arbeitet separat auf jeder Partition;
    • partition_column: Die Spalte, die zur Partitionierung des Ergebnisses verwendet wird.
  • ORDER BY: Gibt die Reihenfolge der Zeilen innerhalb jeder Partition an;
    • order_column: Die Spalte, die zur Sortierung der Zeilen innerhalb jeder Partition verwendet wird.
  • FROM: Gibt die Quelltabelle an, aus der die Daten abgerufen werden;
    • table_name: Der Name der Tabelle, aus der die Daten ausgewählt werden.
question mark

Welche Klausel wird verwendet, um die Partitionierung einer Fensterfunktion zu definieren?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 3
We're sorry to hear that something went wrong. What happened?
some-alt