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:
Nākamajā funkcijā mēs ņemsim stāvokļa funkcijas summu un dalīsim to ar skaitli:
PALIELINĀT
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.