Oracle Database
Funciones estadisticas
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