Indholdsfortegnelse
Samlede funktioner er en meget nyttig funktionstype i databaser, selvom de fleste håndterer de grundlæggende ANSI-SQL-funktioner som f.eks. MIN (), MAX (), AVG (), SUM (), COUNT ().I PostgreSQL vi har mulighed for at oprette vores egne aggregerede funktioner, så vi kan sige, at PostgreSQL er en af de mest tilpassede databaser på markedet.
Som med funktioner af andre typer kan aggregaterne skrives på andre sprog, der understøttes af PostgreSQL.
Byg en samlet funktion
Som vi nævnte i begyndelsen, kan vi skrive de samlede funktioner på næsten ethvert sprog, inklusive SQL, disse funktioner er generelt sammensat af en eller flere funktioner, de skal have mindst en tilstandsovergangsfunktion for at udføre beregningen og valgfrie funktioner til at håndtere tilstand.indledende og sidste tilstand, kan vi endda bruge forskellige sprog til hver af disse funktioner, for eksempel a -funktionen i PL / pgSQL og funktionen b i PL / Python, etc.
Lad os se strukturen, som en samlet funktion skal følge:
CREATE AGGREGATE myagg (datatype_of_input) (SFUNC = state_function_name, STYPE = state_type, FINALFUNC = final_func_name, INITCOND = optional_init_state_value);
Hvor den endelige funktion er valgfri, men hvis vi angiver den, skal den tage som input eller input resultatet af tilstandsfunktionen. Denne tilstandsfunktion tager altid datatypen og resultatet af det sidste opkald fra tilstandsfunktionen som input; samlede funktioner kan også være multi-kolonne.
Selvom de funktioner, der kan bruges og oprettes, er ganske enkle, kan vi blive kreative og lave ægte kunstværker, der bærer kompleksitet.
Vi skal udføre en geometrisk middelfunktion for at demonstrere evnen til PostgreSQL ved udførelse af mere komplekse aggregerede funktioner.
Til denne funktion, vi vil udføre, vil vi bruge to funktioner, en der vil være tilstandsfunktionen, der tilføjer dataene til en log og en eksponentiel final, der konverterer logfilerne igen.
Lad os se på følgende billede tilstandsfunktionen:
I den følgende funktion tager vi summen af tilstandsfunktionen og dividerer den med tællingen:
FORSTØRRE
Med dette afslutter vi denne vejledning, vi har allerede en bredere viden om funktionerne i PostgreSQL og på denne måde kan vi udvide vores database til nye niveauer, der vil gøre vores applikationer meget mere robuste og funktionelle.