PostgreSQL - přidané funkce

Obsah
Agregační funkce jsou velmi užitečným typem funkcí v databázích, ačkoli většina zvládá základní funkce ANSI-SQL, jako je MIN (), MAX (), AVG (), SUM (), COUNT ().
v PostgreSQL máme možnost vytvářet vlastní agregační funkce, abychom mohli říci, že PostgreSQL je jednou z nejvíce přizpůsobitelných databází na trhu.
Stejně jako u funkcí jiných typů lze agregáty zapisovat v jiných jazycích, které PostgreSQL podporuje.
Sestavte funkci agregátu
Jak jsme zmínili na začátku, můžeme psát agregační funkce téměř v jakémkoli jazyce, včetně SQL, tyto funkce jsou obecně složeny z jedné nebo více funkcí, musí mít alespoň jednu funkci přechodu stavu pro výpočet a volitelné funkce pro zpracování počáteční a konečný stav, pro každou z těchto funkcí můžeme dokonce použít různé jazyky, například funkci v PL / pgSQL a funkce b in PL / Python, atd.
Podívejme se na strukturu, kterou musí agregační funkce dodržovat:
 CREATE AGGREGATE myagg (datatype_of_input) (SFUNC = state_function_name, STYPE = state_type, FINALFUNC = final_func_name, INITCOND = optional_init_state_value); 

Tam, kde je konečná funkce volitelná, ale pokud ji zadáme, musí brát jako vstup nebo vstup výsledek stavové funkce. Tato stavová funkce vždy bere jako vstup datový typ a výsledek posledního volání stavové funkce; agregační funkce mohou být také více sloupcové.
Ačkoli funkce, které lze použít a vytvořit, jsou poměrně jednoduché, můžeme být kreativní a vytvářet skutečná umělecká díla, která jsou složitá.
Provedeme funkci geometrického průměru, abychom prokázali schopnost PostgreSQL při provádění složitějších agregačních funkcí.
Pro tuto funkci, kterou uděláme, použijeme dvě funkce, jednu, která bude stavovou funkcí, která přidá data do protokolu, a exponenciálním finále, které protokoly znovu převede.
Podívejme se na následujícím obrázku na stavovou funkci:

Tato funkce přechodu stavu přijímá dva parametry předchozího stavu jako jednorozměrné pole se dvěma prvky a také další prvek v procesu agregace, pokud je prvek nulový nebo nulový, stavová funkce se vrátí do předchozího stavu z jiného formulář vrátí pole, kde první prvek je logaritmický součet a druhý aktuální počet.
V následující funkci vezmeme součet státní funkce a vydělíme ji počtem:

Protože máme všechny funkce, které provádějí všechny výpočty, spojíme obě části dohromady a vygenerujeme naši agregační funkci:

ZVĚTŠIT

Jak jsme viděli, implementace agregační funkce byla docela jednoduchá, logika za ní samozřejmě není tak jednoduchá, nicméně tímto způsobem vidíme, jak kompletní podpora PostgreSQL na těchto úrovních. Mohli jsme bez problému použít jiné jazyky.
S tímto dokončujeme tento návod, již máme širší znalosti o funkcích v PostgreSQL a tímto způsobem můžeme rozšířit naši databázi na nové úrovně, díky nimž budou naše aplikace mnohem robustnější a funkčnější.

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave