Innehållsförteckning
Aggregatfunktioner är en mycket användbar typ av funktioner i databaser, även om de flesta hanterar de grundläggande ANSI-SQL-funktionerna som t.ex. MIN (), MAX (), AVG (), SUM ((), COUNT ().I PostgreSQL vi har möjlighet att skapa våra egna aggregerade funktioner så att vi kan säga att PostgreSQL är en av de mest anpassningsbara databaserna på marknaden.
Som med funktioner av andra typer kan aggregaten skrivas på andra språk som stöds av PostgreSQL.
Skapa en aggregerad funktion
Som vi nämnde i början kan vi skriva aggregerade funktioner på nästan vilket språk som helst, inklusive SQL, dessa funktioner består vanligtvis av en eller flera funktioner, de måste ha minst en tillståndsövergångsfunktion för att göra beräkningen och valfria funktioner för att hantera initialt och slutligt tillstånd kan vi till och med använda olika språk för var och en av dessa funktioner, till exempel a -funktionen i PL / pgSQL och funktionen b in PL / Python, etc.
Låt oss se strukturen som en aggregerad funktion måste följa:
SKAPA AGGREGATE myagg (datatyp_av_input) (SFUNC = state_function_name, STYPE = state_type, FINALFUNC = final_func_name, INITCOND = optional_init_state_value);
När den slutliga funktionen är valfri, men om vi anger den, måste den ta som inmatning eller inmatning av resultatet av tillståndsfunktionen. Denna tillståndsfunktion tar alltid som inmatning datatypen och resultatet av det senaste samtalet i tillståndsfunktionen; aggregerade funktioner kan också vara flera kolumner.
Även om de funktioner som kan användas och skapas är ganska enkla, kan vi bli kreativa och göra verkliga konstverk som bär komplexitet.
Vi kommer att utföra en geometrisk medelvärdefunktion för att visa förmågan hos PostgreSQL när du utför mer komplexa aggregerade funktioner.
För denna funktion som vi kommer att använda kommer vi att använda två funktioner, en som kommer att vara tillståndsfunktionen som lägger till data i en logg och en exponentiell final som kommer att konvertera loggarna igen.
Låt oss se i följande bild tillståndsfunktionen:
I följande funktion tar vi summan av tillståndsfunktionen och dividerar den med räkningen:
FÖRSTORA
Med detta avslutar vi denna handledning, vi har redan en bredare kunskap om funktionerna i PostgreSQL och på så sätt kan vi utöka vår databas till nya nivåer som gör våra applikationer mycket mer robusta och funktionella.