我們需要從每節課中找到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