1create table t1 ( 2pk int primary key, 3a int, 4b int 5); 6insert into t1 values 7( 1 , 0, 10), 8( 2 , 0, 10), 9( 3 , 1, 10), 10( 4 , 1, 10), 11( 8 , 2, 10), 12( 5 , 2, 20), 13( 6 , 2, 20), 14( 7 , 2, 20), 15( 9 , 4, 20), 16(10 , 4, 20); 17select a, 18percent_rank() over (order by a), 19cume_dist() over (order by a) 20from t1; 21a percent_rank() over (order by a) cume_dist() over (order by a) 220 0.0000000000 0.2000000000 230 0.0000000000 0.2000000000 241 0.2222222222 0.4000000000 251 0.2222222222 0.4000000000 262 0.4444444444 0.8000000000 272 0.4444444444 0.8000000000 282 0.4444444444 0.8000000000 292 0.4444444444 0.8000000000 304 0.8888888889 1.0000000000 314 0.8888888889 1.0000000000 32select pk, 33percent_rank() over (order by pk), 34cume_dist() over (order by pk) 35from t1 order by pk; 36pk percent_rank() over (order by pk) cume_dist() over (order by pk) 371 0.0000000000 0.1000000000 382 0.1111111111 0.2000000000 393 0.2222222222 0.3000000000 404 0.3333333333 0.4000000000 415 0.4444444444 0.5000000000 426 0.5555555556 0.6000000000 437 0.6666666667 0.7000000000 448 0.7777777778 0.8000000000 459 0.8888888889 0.9000000000 4610 1.0000000000 1.0000000000 47select a, 48percent_rank() over (partition by a order by a), 49cume_dist() over (partition by a order by a) 50from t1; 51a percent_rank() over (partition by a order by a) cume_dist() over (partition by a order by a) 520 0.0000000000 1.0000000000 530 0.0000000000 1.0000000000 541 0.0000000000 1.0000000000 551 0.0000000000 1.0000000000 562 0.0000000000 1.0000000000 572 0.0000000000 1.0000000000 582 0.0000000000 1.0000000000 592 0.0000000000 1.0000000000 604 0.0000000000 1.0000000000 614 0.0000000000 1.0000000000 62drop table t1; 63