| b | pct_rank | cume_dist | +----+------+------+--------------+--------------+ | 1 | 0 | 10 | 0.0000000000 | 0.1000000000 | | 2 | 0 | 10 | 0.1111111111 | 0.2000000000 | | 3 | 1 | 10 | 0.2222222222 | 0.3000000000 | | 4 | 1 | 10 | 0.3333333333 | 0.4000000000 | | 5 | 2 | 20 | 0.4444444444 | 0.5000000000 | | 6 | 2 | 20 | 0.5555555556 | 0.6000000000 | | 7 | 2 | 20 | 0.6666666667 | 0.7000000000 | | 8 | 2 | 10 | 0.7777777778 | 0.8000000000 | | 9 | 4 | 20 | 0.8888888889 | 0.9000000000 | | 10 | 4 | 20 | 1.0000000000 | 1.0000000000 | +----+------+------+--------------+--------------+ select pk, a, b, percent_rank() over (partition by a order by a) as pct_rank, cume_dist() over (partition by a order by a) as cume_dist from t1; +----+------+------+--------------+--------------+ | pk | a | b | pct_rank | cume_dist | +----+------+------+--------------+--------------+ | 1 | 0 | 10 | 0.0000000000 | 1.0000000000 | | 2 | 0 | 10 | 0.0000000000 | 1.0000000000 | | 3 | 1 | 10 | 0.0000000000 | 1.0000000000 | | 4 | 1 | 10 | 0.0000000000 | 1.0000000000 | | 5 | 2 | 20 | 0.0000000000 | 1.0000000000 | | 6 | 2 | 20 | 0.0000000000 | 1.0000000000 | | 7 | 2 | 20 | 0.0000000000 | 1.0000000000 | | 8 | 2 | 10 | 0.0000000000 | 1.0000000000 | | 9 | 4 | 20 | 0.0000000000 | 1.0000000000 | | 10 | 4 | 20 | 0.0000000000 | 1.0000000000 | +----+------+------+--------------+--------------+ URL: https://mariadb.com/kb/en/percent_rank/https://mariadb.com/kb/en/percent_rank/