Cómo calcular la mediana en sql
Vídeo: Como calcular la Media, Moda y Mediana, medidas de tendencia central
Cálculo de la mediana de un conjunto es más difícil que el simple cálculo de la media o media de un conjunto. Agregar a la sintaxis y la complejidad de SQL y la tarea puede parecer insuperables en un principio. Sin embargo, con algunos conceptos simples y algunos ejemplos, el cálculo del valor de la mediana es sin sudar. Este tutorial utilizará Transact-SQL para sus ejemplos.
Encontrar la mediana
Entender la diferencia entre la mediana y la media de un conjunto. La mediana es el "valor medio" de un conjunto, mientras que la media es la media de todos los elementos de un conjunto. Por ejemplo, dado un conjunto ordenado de números de {1, 2, 6, 9, 10, 11}, la mediana será 7.5 ([6 + 9] / 2), pero la media es 6,5 ([1 + 2 + 6 + 9 + 10 + 11] / 6). Para calcular la mediana, contar el número de elementos en el conjunto. Si el recuento es par, tomar la media del elemento en la posición que se encuentran mediante el recuento total de elementos y dividiendo por dos y la posición encontrado dividiendo el número total de elementos por 2 y la adición de uno. Si el recuento es impar, tome el elemento en la posición marcada por el recuento total dividido por dos y redondeado al número entero más cercano.
Crear un conjunto ordenado de números con un nuevo índice integral. Por ejemplo, si los datos numéricos se almacena en el "num" la columna de la "datos" mesa, crear una nueva tabla temporal que contiene el "num" valor con un nuevo índice: CREATE #values TABLA (int ID NO IDENTIDAD NULL (1,1), numérico num (9,4)) INSERT INTO #values (num) num SELECT FROM orden de los datos por num La instrucción ORDER BY es muy importante para el cálculo de la mediana.
Seleccione los datos de la tabla temporal en el que el ID es igual a la mitad del número de registros de la tabla. Si hay un número impar de registros, tomar el promedio de los dos valores como la media final. Esto se puede lograr en la única consulta a continuación: SELECT PROMEDIO (num) DE #values v JOIN (SELECT COUNT (*) AS cnt DE #values _v) c ON (c.ID = techo (_v.cnt / 2,0) y ( _v.cnt% 2 = 1 - cnt es par o (_v.cnt% 2 = 0 - cnt es par y c.ID = (_v.cnt / 2,0) + 1))) Esta consulta utiliza una subconsulta para encontrar el recuento de registros de manera que el valor medio se puede determinar. Tanto en el caso de un incluso contar y un conteo impar, el uso de techo para redondear (_v.cnt / 2,0) es exacta. (Por ejemplo, Incluso: 6/2 = 3- Odd: 7/2 = 3,5, que se redondea a 4) Además, cuando el recuento es par, añadir 1 a (_v.cnt / 2,0) para obtener el segundo elemento a incluir en el medio final.
Propina
- comprobar Si está utilizando una versión reciente de Microsoft SQL Server, como 2005 o 2008, puede utilizar "Expresiones de tabla comunes" en lugar de crear una tabla temporal. Dependiendo de la configuración del esquema y el servidor, esto puede proporcionar un aumento en el rendimiento.
Artículos necesitará
referencias
- enlazar Media, mediana, moda y rango