CUME_DIST
Devuelve la distribución acumulada: qué parte de las filas de la partición no va después de la actual.
MySQL 8.4
CUME_DIST()Valor devuelto
Número de coma flotante (DOUBLE) mayor que 0 y como máximo 1
Ejemplos
CUME_DIST y PERCENT_RANK por estado
MySQL 8.4
SELECT member_name,
status,
CUME_DIST() OVER (
ORDER BY status
) AS status_cume_dist,
PERCENT_RANK() OVER (
ORDER BY status
) AS status_percent_rank
FROM FamilyMembers;El cuarto más barato de los productos
MySQL 8.4
SELECT name,
price
FROM (
SELECT name,
price,
CUME_DIST() OVER (
ORDER BY price
) AS share_cheaper_or_equal
FROM products
) AS t
WHERE share_cheaper_or_equal <= 0.25;Detalles
El valor es el número de filas cuyo valor en ORDER BY no es mayor que el actual, dividido entre el número de filas de la partición. A diferencia de PERCENT_RANK, la fila actual y las iguales a ella cuentan en la proporción, así que el resultado nunca es 0 y en la última fila es 1. La condición CUME_DIST() <= 0.25 en la consulta externa selecciona el primer cuarto de las filas. Sin ORDER BY, todas las filas de la partición reciben 1.