按嵌套的sql分组
我们需要从每节课中找出得分最高为500分的前10名学生 例如:按嵌套的sql分组,sql,oracle10g,Sql,Oracle10g,我们需要从每节课中找出得分最高为500分的前10名学生 例如: Section Name Total Score A Paul 499 A Gustuv 498 ...upto top 10 B Henrik 499 B John 498 ...upto 10 假设它有两张桌子,学生和班级 如何在oracle中使用sql以这种方式显示结果 根据前10个分析函数
Section Name Total Score
A Paul 499
A Gustuv 498
...upto top 10
B Henrik 499
B John 498
...upto 10
假设它有两张桌子,学生和班级
如何在oracle中使用sql以这种方式显示结果 根据前10个分析函数的含义,使用秩或密集秩
试试看
我没有要测试的模式。。。。但是你应该能够得到大致的想法
with rank_query as (
SELECT section, name, score,
RANK() OVER (PARTITION BY section ORDER BY score) score_rank
FROM myTable
)
select * from rank_query where score_rank <= 10;
谢谢
Jeffrey Kevin Pry发布表名和类的DDL。从类中选择节;从名称中选择名称、科目、分数;什么字段将名称和类表联系在一起?只有名称将它们联系在一起。我们可以说学生表而不是名称表。让我编辑我的帖子。查询将失败并出现错误,因为score_rank不是myTable的定义列,而是派生列。将不带where子句的查询作为内联查询/视图进行,并在使用RANK alreadyJeffrey时删除GROUP BY子句。Jeffrey:现在看起来很好+1.