Função mediana do servidor SQL

Função mediana do servidor SQL

A mediana estatística, ou curta, refere -se a um valor que separa um conjunto de valores ao meio. Você pode pensar na mediana do valor médio dentro de um conjunto de valores classificados em ordem ascendente ou descendente.

A mediana normalmente indica o maior ou menor valor, dependendo do conjunto referenciado. Por exemplo, em um conjunto com valores:

100.200.300.400.500.600.700.800.900

O valor médio no conjunto acima é 500. Portanto, 500 é o quarto maior valor no primeiro conjunto e o quarto menor no segundo conjunto.

Este artigo aprenderá como calcular uma coluna no SQL Server. Lembre -se de que não há função específica para executar uma mediana estatística no SQL Server.

O básico

Vamos começar no básico e entender como calcular a mediana para um conjunto de valores.

Nas estatísticas, para calcular a mediana de um conjunto, começamos organizando os valores em uma ordem ascendente ou descendente. Depois de classificarmos os dados logicamente, determinamos o valor do meio.

Se o conjunto contiver um número ímpar de valores, consideramos o valor médio a mediana do conjunto específico.

No entanto, se o conjunto compreender um número par de valores, determinamos os dois valores médios no conjunto, adicione -os e dividirá por 2.

Podemos expressar a fórmula para calcular a mediana de um determinado conjunto como:

FONTE: Wikipedia.

Calcule a mediana no servidor SQL

Vamos aprender a calcular a mediana no servidor SQL. Vamos começar configurando informações de demonstração, como mostrado nas consultas abaixo:

Crie banco de dados:

Criar mediana do banco de dados;

Use o banco de dados

Use mediana;

Crie uma tabela com colunas como mostrado:

Use mediana;
Criar tabela Sample_data (
identidade de chave primária (1,1) não nula,
Produto Varchar (50),
dinheiro de preço,
Quantidade int
);
Inserir em sample_data (produto, preço, quantidade)
Valores ('cadeira ajustável', 380.40, 1),
('Guarda -chuva à prova de vento', 26.77, 3),
('Amazon Echo Dot', 39.99, 5),
('Purificador de ar', 99.99, 6),
('Câmera de segurança 4K', 109.85, 4),
('Fitness Tracker', 67.49, 10),
('Luvas de tela de toque', 12.99, 8),
('Apple AirPods Pro', 329.99, 5),
('Sony WH-1000XM4', 320.99, 5),
('MacBook Air', 999.99, 10),
('Dell XPS 13', 1170.00, 6);

Depois de termos os dados da amostra, podemos calcular a mediana dos dados fornecidos.

Método 1 - Ranking SQL e CTE

O primeiro método que podemos usar para calcular a mediana dos valores é a função de classificação e expressões de tabela comuns. Este método funciona mesmo em versões mais antigas do SQL Server.

Isso funciona agrupando o conjunto em 50 % mais altos e 50 % menores valores.

Podemos usar isso como mostrado na consulta de exemplo abaixo:

Selecione
(
(Selecione Max (preço) de
(Selecione o preço dos 50 % do Sample_Data por preço) como BottomHalf)
+
(Selecione min (preço) de
(Selecione o preço dos 50 % do Sample_Data Order by Price Desc) como Tophalf)
) / 2 como mediana

O valor resultante é como:

mediana
---------------------
109.85
(1 linha afetada)

Método 2 - percentil_cont

Como mencionado, no momento da redação deste artigo, não há função mediana no SQL Server. No entanto, podemos usar a função percentil_cont para alcançar a mesma funcionalidade.

A função retorna o valor classificado em um percentual específico para um conjunto definido de valores. Portanto, se definirmos o valor percentual para 0.5, a função retornará um valor mediano.

Considere a consulta de exemplo abaixo:

Selecione Produto, Preço, percentil_cont (0.5)
dentro do grupo (ordem por preço)
Sobre (partição por produto) como mediana
De Sample_data Ordem por produto Desc;

A consulta retorna a saída como:

Saiba mais sobre percentile_cont na documentação.

Fechamento

Este artigo discute a mediana estatística e várias maneiras de calcular a mediana de uma coluna no SQL Server.