Inhaltsverzeichnis
Aggregatfunktionen sind ein sehr nützlicher Funktionstyp in Datenbanken, obwohl die meisten die grundlegenden ANSI-SQL-Funktionen wie z MIN (), MAX (), AVG (), SUM (), ANZAHL ().In PostgreSQL Wir haben die Möglichkeit, unsere eigenen Aggregatfunktionen zu erstellen, sodass wir sagen können, dass PostgreSQL eine der am besten anpassbaren Datenbanken auf dem Markt ist.
Wie bei Funktionen anderer Typen können die Aggregate in anderen Sprachen geschrieben werden, die von PostgreSQL unterstützt werden.
Erstellen Sie eine Aggregatfunktion
Wie wir eingangs erwähnt haben, können wir die Aggregatfunktionen in fast jeder Sprache schreiben, einschließlich SQL. Diese Funktionen bestehen im Allgemeinen aus einer oder mehreren Funktionen, sie müssen mindestens eine Zustandsübergangsfunktion für die Berechnung und optionale Funktionen für die Verarbeitung haben Zustand, Anfangs- und Endzustand, wir können für jede dieser Funktionen sogar unterschiedliche Sprachen verwenden, zum Beispiel die a-Funktion in PL / pgSQL und die Funktion b in PL / Python, etc.
Sehen wir uns die Struktur an, der eine Aggregatfunktion folgen muss:
CREATE AGGREGATE myagg (datatype_of_input) (SFUNC = state_function_name, STYPE = state_type, FINALFUNC = final_func_name, INITCOND = optional_init_state_value);
Wenn die letzte Funktion jedoch optional ist, muss sie, wenn wir sie angeben, das Ergebnis der Zustandsfunktion als Eingabe oder Eingabe annehmen. Diese Zustandsfunktion nimmt als Eingabe immer den Datentyp und das Ergebnis des letzten Aufrufs der Zustandsfunktion; Aggregatfunktionen können auch mehrspaltig sein.
Obwohl die Funktionen, die verwendet und erstellt werden können, recht einfach sind, können wir kreativ werden und wahre Kunstwerke mit Komplexität schaffen.
Wir führen eine geometrische Mittelwertfunktion durch, um die Fähigkeit von zu demonstrieren PostgreSQL bei der Ausführung komplexerer Aggregatfunktionen.
Für diese Funktion, die wir ausführen werden, verwenden wir zwei Funktionen, eine, die die Zustandsfunktion ist, die die Daten zu einem Protokoll hinzufügt, und ein exponentielles Finale, das die Protokolle erneut konvertiert.
Sehen wir uns im folgenden Bild die Zustandsfunktion an:
In der folgenden Funktion nehmen wir die Summe der Zustandsfunktion und teilen sie durch die Anzahl:
VERGRÖSSERN
Damit beenden wir dieses Tutorial, wir haben bereits ein breiteres Wissen über die Funktionen in PostgreSQL und auf diese Weise können wir unsere Datenbank auf neue Ebenen erweitern, die unsere Anwendungen viel robuster und funktionaler machen.