Función de ventana CUME_DIST
Calcula la distribución acumulada de un valor dentro de una ventana o partición. Si se asume un orden ascendente, la distribución acumulada se determina utilizando esta fórmula:
count of rows with values <= x / count of rows in the window or
partition
donde x equivale al valor en la fila actual de la columna especificada en la cláusula ORDER BY. El siguiente conjunto de datos ilustra el uso de esta fórmula:
Row# Value Calculation CUME_DIST 1 2500 (1)/(5) 0.2 2 2600 (2)/(5) 0.4 3 2800 (3)/(5) 0.6 4 2900 (4)/(5) 0.8 5 3100 (5)/(5) 1.0
El rango de valor de retorno es > 0 a 1, inclusive.
Sintaxis
CUME_DIST () OVER ( [ PARTITION BY partition_expression ] [ ORDER BY order_list ] )
Argumentos
- OVER
-
Una cláusula que especifica la partición de ventana. La cláusula OVER no puede tener una especificación de marco de ventana.
- PARTITION BY partition_expression
-
Opcional. Una expresión que establece el rango de registros para cada grupo en la cláusula OVER.
- ORDER BY order_list
-
La expresión sobre la cual se calcula la distribución acumulada. La expresión debe tener un tipo de dato numérico o ser implícitamente convertible a un dato numérico. Si se omite ORDER BY, el valor de retorno es 1 para todas las filas.
Si ORDER BY no produce una ordenación única, el orden de las filas no es determinístico. Para obtener más información, consulte Ordenación única de datos para funciones de ventana.
Tipo de retorno
FLOAT8
Ejemplos
En el siguiente ejemplo, se calcula la distribución acumulada de la cantidad para cada vendedor:
select sellerid, qty, cume_dist() over (partition by sellerid order by qty) from winsales; sellerid qty cume_dist -------------------------------------------------- 1 10.00 0.33 1 10.64 0.67 1 30.37 1 3 10.04 0.25 3 15.15 0.5 3 20.75 0.75 3 30.55 1 2 20.09 0.5 2 20.12 1 4 10.12 0.5 4 40.23 1
Para ver una descripción de la tabla WINSALES, consulte Tabla de muestra para ejemplos de funciones de ventana.