create table msgdw.wq_test(name_1 varchar(10), class_1 varchar(2), score int)
insert into msgdw.wq_test values('tony', '1' ,91) ;
insert into msgdw.wq_test values('wangxiao', '1' ,99) ;
insert into msgdw.wq_test values('jerry', '1' ,99) ;
insert into msgdw.wq_test values('alice', '2' ,99) ;
insert into msgdw.wq_test values('tim', '2' ,100) ;
insert into msgdw.wq_test values('tommy', '3' ,80) ;
insert into msgdw.wq_test values('tom', '2' ,95) ;
insert into msgdw.wq_test values('john', '3' ,93) ;
insert into msgdw.wq_test values('dave', '3' ,91) ;
insert into msgdw.wq_test values('sam', '2' ,88) ;
insert into msgdw.wq_test values('sasa', '1' ,90) ;
commit;
select * from msgdw.wq_test ;
select name_1,class_1,score, COUNT(*) OVER(PARTITION BY class_1 ORDER BY W.score DESC rows between unbounded preceding and current row ) RN
from msgdw.wq_test W ;