我们需要从课程的每个部分找到TOP 10学生(最高分500分)。
示例:
Section Name Total Score
A Paul 499
A Gustuv 498
...upto top 10
B Henrik 499
B John 498
...upto 10
假设它有两个表STUDENT和CLASS。
如何在oracle中使用sql以这种方式显示结果?
答案 0 :(得分:1)
...试
我没有测试你的架构....但你应该能够得到一般的想法。
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
答案 1 :(得分:0)
使用RANK
或DENSE_RANK
(取决于“前10名”的意思)分析函数。
http://www.oracle-base.com/articles/misc/RankDenseRankFirstLastAnalyticFunctions.php