我们需要从每节课中找到TOP 10的学生(最高分数为500)。嵌套的sql组
实施例:
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以这种方式显示结果?
我们需要从每节课中找到TOP 10的学生(最高分数为500)。嵌套的sql组
实施例:
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以这种方式显示结果?
尝试...
我没有你的方案来测试....但是,你应该能够得到的总体思路。
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;
谢谢,
杰弗里凯文撬
使用RANK
或DENSE_RANK
(取决于“前10位”的含义)分析函数。
http://www.oracle-base.com/articles/misc/RankDenseRankFirstLastAnalyticFunctions.php
后的表名称和类的DDL ..从类 – Chandu
选择部分;从NAME中选择姓名,主题,分数; – ErAB
什么字段将NAME和CLASS表结合在一起? – Chandu