Re: [SQL ] 找出每個科目最高成績的學生名及成績

作者: moyasi (Simple Life)   2019-10-21 10:56:34
select sno,cno,degree
from (select sno,cno,degree,
rank() over(partition by cno order by degree desc) rn
from score
)
where rn=1;
※ 引述《paranoia5201 (社會黑暗、行路難)》之銘言:
: 資料庫名稱:無
: 資料庫版本:無
: 內容/問題描述:(這是一個考題)
: 有一張成績表為score,其中有三個欄位:課程名稱cno,學生代號sno,修課成績degree。
: 如何取出各科目最高成績之學生代碼及修課成績?
: 簡單的想法:
: (select cno, sno, max(degree) from score group by cno)
: 上述結果我不確定sno會是對應出最高分數的學生名嗎?
: 另一個想法:(未完成)
: select * from score order by cno, degree
: 將成績表以科目與分數排列後,試圖捉出每個科目的最後一欄,
: 但是就不知道怎麼選出每個科目的最後一欄了......
: 各科目依照成績排列後的最後一欄,很明顯就是最高成績的學生了。
: 兩個寫法不曉得是否正確操作,由於這是考題所以無法實作。
: 還請各位指導,感謝~

Links booklink

Contact Us: admin [ a t ] ucptt.com