Wie schreibe ich Fenster- und Analysefunktionen?
Um ein Fenster und eine analytische Funktion zu schreiben, müssen Sie diese allgemeine Syntax befolgen:
Bei der Funktion kann es sich um eine integrierte oder benutzerdefinierte Funktion handeln, die Fenstererstellung unterstützt, z. B. SUM, AVG, ROW_NUMBER, RANK, LAG, LEAD usw. Die Argumente sind die Spalten oder Ausdrücke, mit denen die Funktion arbeitet. Die OVER-Klausel definiert das Fenster für die Funktion, das die optionalen Komponenten PARTITION BY, ORDER BY und frame_clause enthalten kann. Die PARTITION BY-Klausel gibt die Spalten an, mit denen die Daten in Gruppen unterteilt werden. Die ORDER BY-Klausel gibt die Spalten an, in denen die Daten in den einzelnen Partitionen sortiert werden. Der Frame_clause gibt den Bereich der Zeilen an, die in die Berechnung einbezogen werden sollen, die auf ZEILEN oder BEREICH basieren können und unterschiedliche Optionen für den Start- und Endpunkt haben können.
Angenommen, Sie haben eine Tabelle mit dem Namen "Umsatz" mit den Spalten "Datum", "Produkt" und "Betrag". Sie können eine Fensterfunktion verwenden, um den Gesamtumsatz für jedes Produkt im Zeitverlauf wie folgt zu berechnen:
WÄHLEN Sie Datum, Produkt, Betrag, SUMME(Betrag) ÜBER (PARTITIONIEREN NACH Produkt BESTELLEN NACH Datum) ALS Gesamtsumme
Diese Abfrage gibt die Spalten "Datum", "Produkt", "Betrag" und "Summe" zurück, wobei die Spalte "Summe" die kumulative Summe der Spalte "Betrag" für jede Produktpartition ist, sortiert nach der Spalte "Datum".