Spisie treści
Funkcje agregujące są bardzo przydatnym typem funkcji w bazach danych, chociaż większość obsługuje podstawowe funkcje ANSI-SQL, takie jak MIN (), MAX (), ŚREDNIA (), SUMA (), LICZBA ().w PostgreSQL mamy możliwość tworzenia własnych funkcji agregujących, dzięki czemu możemy powiedzieć, że PostgreSQL jest jedną z najbardziej konfigurowalnych baz danych na rynku.
Podobnie jak w przypadku funkcji innych typów, agregaty mogą być pisane w innych językach obsługiwanych przez PostgreSQL.
Zbuduj funkcję agregującą
Jak wspomnieliśmy na początku, możemy napisać funkcje agregujące w prawie każdym języku, w tym w SQL, funkcje te generalnie składają się z jednej lub więcej funkcji, muszą mieć co najmniej jedną funkcję zmiany stanu, aby wykonać obliczenia i opcjonalne funkcje do obsługi stan początkowy i końcowy, możemy nawet używać różnych języków dla każdej z tych funkcji, na przykład funkcji a w PL / pgSQL i funkcja b in PL / Pythonitp.
Zobaczmy, jaką strukturę musi spełniać funkcja agregująca:
CREATE AGGREGATE myagg (typ_danych_wejścia) (SFUNC = nazwa_funkcji_stanu, STYPE = typ_stanu, FINALFUNC = nazwa_końcowej_funkcji, INITCOND = opcjonalna_wartość_stanu_stanu);
Tam, gdzie funkcja końcowa jest opcjonalna, jednak jeśli ją określimy, musi przyjąć jako dane wejściowe lub wynik funkcji stanu. Ta funkcja stanu zawsze przyjmuje jako dane wejściowe typ danych i wynik ostatniego wywołania funkcji stanu; funkcje agregujące również mogą być wielokolumnowe.
Chociaż funkcje, których można używać i tworzyć, są dość proste, możemy być kreatywni i tworzyć prawdziwe dzieła sztuki, które niosą ze sobą złożoność.
Wykonamy funkcję średniej geometrycznej, aby zademonstrować zdolność PostgreSQL podczas wykonywania bardziej złożonych funkcji agregujących.
Dla tej funkcji, którą wykonamy, użyjemy dwóch funkcji, jednej, która będzie funkcją stanu, która doda dane do dziennika, oraz wykładniczej, która ponownie przekonwertuje dzienniki.
Zobaczmy na poniższym obrazku funkcję stanu:
W poniższej funkcji weźmiemy sumę funkcji stanu i podzielimy ją przez liczbę:
POWIĘKSZAĆ
Na tym kończymy ten samouczek, mamy już szerszą wiedzę na temat funkcji w PostgreSQL iw ten sposób możemy rozszerzyć naszą bazę danych na nowe poziomy, które sprawią, że nasze aplikacje będą znacznie bardziej niezawodne i funkcjonalne.