drop table test;
create table test
(
name varchar(20),
kemu varchar(20),
score number
);
insert into test values('testa','yuwen',10);
insert into test values('testa','英语',100);
insert into test values('testb','yuwen',60);
insert into test values('testb','yuwen',120);
insert into test values('testc','yuwen',40);
select name,
score,
ratio_to_report(score) over() as "占所有科目的百分比", ratio_to_report(score) over(partition by kemu) as "占各科目的百分比" from test ;
NAME
SCORE 占所有科目的百分比 占各科目的百分比
-------------------- ---------- ------------------ ----------------
testa
10
.03030303
.043478261
testb
60
.181818182
.260869565
testc
40
.121212121
.173913043
testb
120
.363636364
.52173913
testa
100
.303030303
1