PostgreSQL - pievienotas funkcijas

Satura rādītājs
Apkopotās funkcijas ir ļoti noderīgs funkciju veids datu bāzēs, lai gan lielākā daļa apstrādā pamata ANSI-SQL funkcijas, piemēram, MIN (), MAX (), AVG (), SUM (), COUNT ().
In PostgreSQL mums ir iespēja izveidot savas apkopotās funkcijas, lai mēs varētu teikt, ka PostgreSQL ir viena no visvairāk pielāgojamām datu bāzēm tirgū.
Tāpat kā citu veidu funkcijas, apkopojumus var rakstīt citās valodās, kuras atbalsta PostgreSQL.
Veidojiet apkopošanas funkciju
Kā jau minējām sākumā, apkopotās funkcijas varam rakstīt gandrīz jebkurā valodā, ieskaitot SQL, šīs funkcijas parasti sastāv no vienas vai vairākām funkcijām, tām ir jābūt vismaz vienai stāvokļa pārejas funkcijai, lai veiktu aprēķinus, un papildu funkcijām, lai apstrādātu sākotnējais un galīgais stāvoklis, mēs pat varam izmantot dažādas valodas katrai no šīm funkcijām, piemēram, funkciju PL / pgSQL un funkcija b in PL / Pythonutt.
Apskatīsim struktūru, kas jāievēro apkopošanas funkcijai:
 CREATE AGGREGATE myagg (ievades datu tips) (SFUNC = štata_funkcijas_nosaukums, STIPS = valsts_tips, FINALFUNC = galīgais_funkcijas_nosaukums, INITCOND = pēc izvēles_init_valsts vērtība); 

Ja galīgā funkcija nav obligāta, tomēr, ja mēs to norādām, tai kā ieejai vai ievadei ir jāņem stāvokļa funkcijas rezultāts. Šī stāvokļa funkcija vienmēr kā ievadi izmanto datu tipu un stāvokļa funkcijas pēdējā izsaukuma rezultātu; apkopojuma funkcijas var būt arī vairāku kolonnu.
Lai gan funkcijas, kuras var izmantot un izveidot, ir pavisam vienkāršas, mēs varam kļūt radoši un izgatavot patiesus mākslas darbus, kas nes sarežģītību.
Mēs veiksim vidējo ģeometrisko funkciju, lai parādītu spēju PostgreSQL veicot sarežģītākas apkopojuma funkcijas.
Šai funkcijai, ko mēs darīsim, mēs izmantosim divas funkcijas, vienu, kas būs stāvokļa funkcija, kas pievienos datus žurnālam, un eksponenciālu finālu, kas žurnālus pārveidos vēlreiz.
Tālāk redzamajā attēlā redzēsim stāvokļa funkciju:

Šī stāvokļa pārejas funkcija saņem divus iepriekšējā stāvokļa parametrus kā viendimensiju masīvu ar diviem elementiem un arī nākamo elementu apkopošanas procesā, ja elements ir nulle vai nulle, stāvokļa funkcija atgriezīsies iepriekšējā stāvoklī, no cita forma atgriezīs masīvu, kur pirmais elements ir logaritmiskā summa, bet otrais - pašreizējais skaitlis.
Nākamajā funkcijā mēs ņemsim stāvokļa funkcijas summu un dalīsim to ar skaitli:

Tā kā mums ir savas funkcijas, kas veic visu aprēķinu, mēs apkoposim abus gabalus, lai ģenerētu mūsu kopējo funkciju:

PALIELINĀT

Kā redzējām, apkopošanas funkcijas ieviešana bija pavisam vienkārša, protams, loģika aiz tās nav tik vienkārša, tomēr šādā veidā mēs redzam, cik pilnīgs ir PostgreSQL šajos līmeņos. Mēs būtu varējuši izmantot citas valodas bez problēmām.
Pabeidzot šo apmācību, mums jau ir plašākas zināšanas par funkcijām PostgreSQL un šādā veidā mēs varam paplašināt savu datu bāzi jaunos līmeņos, kas padarīs mūsu lietojumprogrammas daudz izturīgākas un funkcionālākas.
wave wave wave wave wave