Función media del servidor SQL

Función media del servidor SQL

La mediana estadística, o corta, se refiere a un valor que separa un conjunto de valores por la mitad. Puede pensar en la mediana del valor medio dentro de un conjunto de valores ordenados en orden ascendente o descendente.

La mediana típicamente indica el valor más grande o más pequeño, dependiendo del conjunto referenciado. Por ejemplo, en un conjunto con valores:

100,200,300,400,500,600,700,800,900

El valor medio en el conjunto anterior es 500. Por lo tanto, 500 es el cuarto valor más grande en el primer set y el cuarto más pequeño en el segundo set.

Este artículo aprenderá cómo calcular una columna en SQL Server. Tenga en cuenta que no existe una función específica para realizar una mediana estadística en SQL Server.

Los basicos

Comencemos en lo básico y comprendamos cómo calcular la mediana para un conjunto de valores.

En estadísticas, para calcular la mediana de un conjunto, comenzamos organizando los valores en un orden ascendente o descendente. Una vez que tenemos los datos ordenados lógicamente, determinamos el valor medio.

Si el conjunto contiene un número impar de valores, consideramos el valor medio de la mediana del conjunto específico.

Sin embargo, si el conjunto comprende un número par de valores, determinamos los dos valores medios en el conjunto, los agregamos y dividimos por 2.

Podemos expresar la fórmula para calcular la mediana de un conjunto dado como:

FUENTE: Wikipedia.

Calcular la mediana en el servidor SQL

Aprendamos cómo calcular la mediana en SQL Server. Comencemos por configurar información de demostración como se muestra en las consultas a continuación:

Crear base de datos:

Crear mediana de la base de datos;

Use la base de datos

Usar mediana;

Crea una tabla con columnas como se muestra:

Usar mediana;
Crear tabla sample_data (
ID int Identidad de clave primaria (1,1) no nula,
Producto Varchar (50),
precio de dinero,
cantidad int
);
Insertar en sample_data (producto, precio, cantidad)
Valores ('silla ajustable', 380.40, 1),
('Paraguas a prueba de viento', 26.77, 3),
('Amazon Echo Dot', 39.99, 5),
('Purificador de aire', 99.99, 6),
('Cámara de seguridad 4K', 109.85, 4),
('Fitness Tracker', 67.49, 10),
('Guantes de pantalla táctil', 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);

Una vez que tenemos los datos de la muestra, podemos calcular la mediana de los datos proporcionados.

Método 1 - Ranking SQL y CTE

El primer método que podemos usar para calcular la mediana de valores es la función de rango y las expresiones de tabla comunes. Este método funciona incluso en versiones anteriores de SQL Server.

Esto funciona agrupando el conjunto en un 50 por ciento más altos y al 50 por ciento más bajos.

Podemos usar esto como se muestra en la consulta de ejemplo a continuación:

SELECCIONAR
(
(Seleccione Max (precio) de
(Seleccione el precio superior del 50 por ciento del pedido de Sample_Data por precio) como Bottomalfalf)
+
(Seleccione Min (precio) de
(Seleccione el precio superior del 50 por ciento del pedido de Sample_Data por precio Desc) como Tophalf)
) / 2 como mediana

El valor resultante es como:

mediana
---------------------
109.85
(1 fila afectada)

Método 2 - Pentile_Cont

Como se mencionó, al momento de escribir este artículo, no hay función media en SQL Server. Sin embargo, podemos usar la función percentil_cont para lograr la misma funcionalidad.

La función devuelve el valor clasificado en un porcentaje específico para un conjunto definido de valores. Por lo tanto, si establecemos el valor porcentual en 0.5, la función devolverá un valor medio.

Considere la consulta de ejemplo a continuación:

Seleccione Producto, Precio, Pentille_Cont (0.5)
dentro del grupo (pedido por precio)
Sobre (partición por producto) como mediana
Del orden sample_data por producto Desc;

La consulta devuelve la salida como:

Obtenga más información sobre percentil_cont en la documentación.

Clausura

Este artículo analiza la mediana estadística y varias formas de calcular la mediana de una columna en SQL Server.