Oracle查询分组数据前3个数据

2024-12-18 06:53:02
推荐回答(3个)
回答1:

select a.*
FROM ( select 班级,
学号,
总成绩,
...其它信息
dense_rank() over(partition by 班级,学号 order by 总成绩 desc) 排名
from 年级成绩表
where ...
) a
where a.排名<=3
注:允许有并列的情况,也可把dense_rank() 换成 rank()试试看有什么不同

回答2:

select a.* (select 班级...基本信息,dense_rank() over (partition by 班级 order by 成绩) 名次 from
年纪成绩表)a where a.名称<=3;

回答3:

学习了