SQL已知学生id(uid)、课程id(csid)、分数(score),需要输出各科前10%学生的uid,如何做到呢?
这是一个开窗问题,以下SQL可在MySQL8执行。
select
*,
row_number() over (partition by uid,csid order by score desc) rw from tt
where rw<=round(select count(distinct uid)/10 from tt)
若有帮助,谢谢采纳~
是按每科单独查询数据,还是一次查询全部数据
然后所有数据都在一个表还是多个表