PostgreSQL - Funções Adicionadas

Índice
As funções agregadas são um tipo de função muito útil em bancos de dados, embora a maioria lide com as funções ANSI-SQL básicas, como MIN (), MAX (), AVG (), SUM (), COUNT ().
Em PostgreSQL temos a possibilidade de criar nossas próprias funções de agregação para que possamos dizer que o PostgreSQL é um dos bancos de dados mais customizáveis ​​do mercado.
Assim como as funções de outros tipos, os agregados podem ser escritos em outras linguagens que são suportadas pelo PostgreSQL.
Construir uma função agregada
Como mencionamos no início, podemos escrever as funções de agregação em quase qualquer linguagem, incluindo SQL, essas funções são geralmente compostas por uma ou mais funções, elas devem ter pelo menos uma função de transição de estado para fazer o cálculo e funções opcionais para lidar com o estado inicial e final, podemos até usar linguagens diferentes para cada uma dessas funções, por exemplo, a função a em PL / pgSQL e a função b em PL / Pythonetc.
Vamos ver a estrutura que uma função agregada deve seguir:
 CREATE AGGREGATE myagg (datatype_of_input) (SFUNC = state_function_name, STYPE = state_type, FINALFUNC = final_func_name, INITCOND = optional_init_state_value); 

Onde a função final é opcional, no entanto, se a especificarmos, ela deve tomar como entrada ou inserir o resultado da função de estado. Esta função de estado sempre leva como entrada o tipo de dados e o resultado da última chamada da função de estado; as funções de agregação também podem ser de várias colunas.
Embora as funções que podem ser usadas e criadas sejam bastante simples, podemos ser criativos e fazer verdadeiras obras de arte que carregam complexidade.
Vamos realizar uma função de média geométrica para demonstrar a capacidade de PostgreSQL ao executar funções de agregação mais complexas.
Para esta função que faremos usaremos duas funções, uma que será a função de estado que adicionará os dados a um log e uma final exponencial que converterá os logs novamente.
Vamos ver na imagem a seguir a função de estado:

Esta função de transição de estado recebe dois parâmetros do estado anterior como uma matriz unidimensional com dois elementos e também o próximo elemento no processo de agregação, se o elemento for nulo ou zero, a função de estado retornará ao estado anterior, de outro form retornará uma matriz em que o primeiro elemento é a soma logarítmica e o segundo é a contagem atual.
Na função a seguir, pegaremos a soma da função de estado e dividiremos pela contagem:

Como temos nossas funções que fazem todos os cálculos, vamos colocar as duas peças juntas para gerar nossa função de agregação:

PROLONGAR

Como pudemos ver, a implementação da função de agregação foi bastante simples, é claro que a lógica por trás dela não é tão simples, porém desta forma vemos quão completo o suporte de PostgreSQL nesses níveis. Poderíamos ter usado outras línguas sem problemas.
Com isso finalizamos este tutorial, já temos um conhecimento mais amplo sobre as funções em PostgreSQL e desta forma podemos estender nosso banco de dados a novos níveis que tornarão nossos aplicativos muito mais robustos e funcionais.

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave