Buscar..


Cálculo de la mediana de un conjunto de valores.

La función MEDIANA desde Oracle 10g es una función de agregación fácil de usar:

SELECT MEDIAN(SAL)
FROM EMP

Devuelve la mediana de los valores.

Funciona en los valores DATETIME también.

El resultado de MEDIAN se calcula ordenando primero las filas. Usando N como el número de filas en el grupo, Oracle calcula el número de fila (RN) de interés con la fórmula RN = (1 + (0.5 * (N-1)). El resultado final de la función agregada se calcula de forma lineal interpolación entre los valores de las filas en los números de fila CRN = CEILING (RN) y FRN = FLOOR (RN).

Desde Oracle 9i puede usar PERCENTILE_CONT que funciona igual que la función MEDIAN con valores predeterminados de valor percentil de 0.5

SELECT PERCENTILE_CONT(.5) WITHIN GROUP(order by SAL) 
FROM EMP

DIFERENCIA

La varianza mide qué tan lejos se distribuyen los números determinados de su media. Desde la perspectiva práctica, es la distancia al cuadrado de su media (centro): cuanto mayor sea el número, más lejos estará el punto.

El siguiente ejemplo devolvería la varianza de los valores salariales

SELECT name, salary, VARIANCE(salary) "Variance"
FROM employees 

STDDEV

STDDEV devuelve la muestra de desviación estándar de expr, un conjunto de números. Puedes usarlo tanto como una función agregada como analítica. Difiere de STDDEV_SAMP en que STDDEV devuelve cero cuando tiene solo 1 fila de datos de entrada, mientras que STDDEV_SAMP devuelve nulo.

La base de datos Oracle calcula la desviación estándar como la raíz cuadrada de la varianza definida para la función agregada VARIANCE.

Esta función toma como argumento cualquier tipo de datos numérico o cualquier tipo de datos no numéricos que puedan convertirse implícitamente en un tipo de datos numérico. La función devuelve el mismo tipo de datos que el tipo de datos numérico del argumento.

Si especifica DISTINCT, entonces puede especificar solo la query_partition_clause de la analytic_clause. El order_by_clause y windowing_clause no están permitidos.

El siguiente ejemplo devuelve la desviación estándar de los salarios en la tabla de empleados de muestra:

Donde hr es Schema y empleados es un nombre de tabla.

SELECT STDDEV(salary) "Deviation"
FROM employees;

Deviation
----------
3909.36575

La consulta en el siguiente ejemplo devuelve la desviación estándar acumulada de los salarios en el Departamento 80 en la tabla de muestra hr.employees, ordenada por hire_date:

SELECT last_name, salary, 
STDDEV(salary) OVER (ORDER BY hire_date) "StdDev"
FROM employees  
WHERE department_id = 30; 

LAST_NAME                     SALARY     StdDev
------------------------- ---------- ----------
Raphaely                       11000          0
Khoo                            3100 5586.14357
Tobias                          2800  4650.0896


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow