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