Função mediana do PostgreSQL

Função mediana do PostgreSQL
A mediana calculadora é obrigada a obter o valor intermediário dos dados. Como muitas outras funções, o PostgreSQL fornece uma ampla gama de versatilidade ao lidar com a função mediana. Está preocupado em encontrar o valor mediano da coluna da tabela em que a mediana é usada. Em contraste com a contagem de funções agregadas pós -Gresql, soma, não há uma função específica usada para calcular o agregado da mediana. A mediana é uma função definida pelo usuário.

Em funções aritméticas simples, existem meios e fórmulas diferentes para encontrar a mediana em qualquer dados fornecidos em texto simples ou na forma tabular. Enquanto no caso de sistemas de banco de dados, usamos outras funções internas combinadas para obter o valor da mediana. Este artigo elaborará algumas das técnicas mais eficientes e também uma função manual criada por nós para buscar a mediana dos dados no PostgreSQL.

Uso de percentile_count () e percentile_disc ()

Essas duas são as maneiras de obter mediana de uma maneira ligeiramente diferente. Porque a diferença em seus valores resultantes é baseada em suas metodologias. Percentil refere -se a retratar o valor dos dados com uma porcentagem de por cem. Mas para a mediana, usamos (0.5) valor. A principal diferença entre os dois é que o percentil_count () interpola o valor e seu trabalho é baseado na distribuição contínua dos valores, enquanto o percentil_disc () retorna o valor dos dados fornecidos e depende do cálculo do percentil na distribuição discreta.

A sintaxe para ambos os percentis é:

Selecione percentil_count (0.5) dentro do grupo (ordem por x) de valores (a), (b), (c), (d)) v (x);
Selecione percentil_disc (0.5) dentro do grupo (ordem por x) de valores (a), (b), (c), (d)) v (x);

Para os valores fornecidos, o percentil_disc retornará os únicos valores presentes nos dados. Percentil_count calcula a mediana para os valores. Por exemplo, entre os números pares. No exemplo acima, o percentil_count dará “5” o número entre os valores 3 e 7. E percentile_disc mostra 7 de descendentes. Como o valor para esta função é sempre dos dados disponíveis. Por isso fornece o valor mais próximo da mediana após os cálculos.

Como os dados no PostgreSQL estão presentes nas relações (tabela), o percentil é aplicado na coluna de um valor numérico (pagamento). Criamos uma mesa chamada Professor. A consulta a seguir nos ajudará a ilustrar os atributos da tabela primeiro e depois aplicar o percentil_disc ().

>> selecione * do professor; Selecione percentil_disc (0.5) dentro do grupo (ordem por profissão.pagamento) do professor;

A primeira metade da consulta exibirá o conteúdo da tabela. enquanto a segunda parte selecionará o valor percentual. Um pedido por cláusula é aplicado aqui. Esta cláusula organizará os itens da coluna relevante em ordem ascendente e depois aplicará a função. A coluna (pagamento) está em uso para que esta consulta seja executada.

Após a execução, o resultado é 51, um valor distinto que é obtido pela função percentual. Para deixá -lo mais claro, um simples "ntile" por 100 é usado para organizar cada elemento da coluna em ordem crescente.

>> Selecione Professor. PAGA, NTile (100) (Ordem do Professor. pagamento) do professor;

O comando mencionado acima transmite a coluna "Pay" da tabela. Tornou mais fácil entender como o percentil_disc operará. Como os números totais na coluna "Pay" são 8 linhas que são uniformes. Portanto, é difícil obter o ponto médio preciso dos dados. Disco () irá para o valor mais próximo. Isso é "51" de acordo com a ordem ascendente.

No caso de percentil_count, o restante do comando é o mesmo, mas a função é alterada de disco para cont. Como o nome indica o funcionamento do percentil_cont, o valor está na forma de continuidade, o que significa que não há fim até agora. Portanto, o resultado estará sempre em forma decimal. Isso concederá em meados de dois números adjacentes. Em outras palavras, essa função busca os dois números presentes no centro da coluna, no caso de números pares.

>> Selecione percentil_count (0.5) dentro do grupo (Ordem por Profrssor.pagamento) do professor;

Entre 51 e 52 é “51.5 ”é o valor contínuo preciso da mediana na coluna“ Pay ”.

Você também pode alterar o valor percentual em qualquer função. Por exemplo, usamos 0.25, 0.5 e 0.75 como o parâmetro em percentil_disc ().

Percentil_disc (0.25)
Percentil_disc (0.5)
Percentil_dic (0.75)

Todos os valores são exibidos coletivamente em uma única linha usando esta sintaxe na função. Considere o estalo que anexamos, que mostra o Íntile da coluna, todos os valores são classificados em ordem crescente. Se 0.5 leva ao valor "51", depois para 0.25, é 8 e para “0.75 ”é 77. Como é o número presente na ID 4, então para 0.25, é calculado de acordo com o quarto id, respectivamente. E semelhante é o caso com 0.75.

Uso da função para mediana

Para aplicar a função para o cálculo da mediana da tabela, precisamos ter uma nova tabela de amostra. Após a criação, os valores serão adicionados para fazê -lo no estado funcional. A tabela temporária é usada porque não precisamos desses dados por mais tempo para existir no banco de dados.

>> Crie mediana da tabela temporária (ID Serisl, Classe Varchar (50), Nome Varchar (50), Grade Decimal (5,1)); >> inserir em mediana (classe, nome, grau) valores ('x', 'y', z);

Após a inserção do valor, teremos um vislumbre dos dados que são inseridos. Para esse fim, use a instrução SELECT.

>> Selecione * da mediana,

Nesta função, a mediana para cada classe será calculada separadamente. Esta partição está de acordo com a coluna da classe. Os dados são classificados nas ordens ASC e DESC. Uma nova função é inicializada aqui Número da linha (). Isso buscará o número da linha e depois aplicará operações de acordo com ele. Vamos dar uma olhada no código. Então vamos quebrá -lo para ver o que está acontecendo aqui para obter a mediana.

O comando selecionado é usado que apresenta a subconsulta. Esta subconsulta usa esse número de linha () que organizará as linhas em ordem ascendente e descendente. Para cada classe, os pedidos são usados ​​para números de linha.

Sempre que você está em busca da mediana na lista de valores em números pares, a resposta sempre está em tomar a média dos dois números do meio, como o percentil_cont faz. Isso está acontecendo neste comando para obter a mediana.

Rowasc in (Rowdesc, Rowdesc - 1, Rowdesc + 1)

O resultante é enviado de volta da subconsência para a consulta principal. E então uma média é calculada. Para as contas, temos 72.0, o esperado no meio do caso de uma lista estranha de valores. Considerando que para a ciência é 76.5. Ele tem um número par em assuntos científicos, por isso temos meados de 72 e 81.

Conclusão

A função mediana do PostGresql facilita a localização do ponto médio nos dados simples ou tabulares do que calculá-lo manualmente. Embora seja uma função criada pelo usuário, ele usa algumas funções internas para buscar o registro relevante. Percentil_cont e percentile_disc são considerados o núcleo do tópico em discussão. Como seu apoio silencioso em fornecer conceito mediano na função é notável. No entanto, todas essas funções são suficientes para encontrar a mediana.