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

作者: paranoia5201 (邁向研究生)   2019-10-21 00:04:27
資料庫名稱:無
資料庫版本:無
內容/問題描述:(這是一個考題)
有一張成績表為score,其中有三個欄位:課程名稱cno,學生代號sno,修課成績degree。
如何取出各科目最高成績之學生代碼及修課成績?
簡單的想法:
(select cno, sno, max(degree) from score group by cno)
上述結果我不確定sno會是對應出最高分數的學生名嗎?
另一個想法:(未完成)
select * from score order by cno, degree
將成績表以科目與分數排列後,試圖捉出每個科目的最後一欄,
但是就不知道怎麼選出每個科目的最後一欄了......
各科目依照成績排列後的最後一欄,很明顯就是最高成績的學生了。
兩個寫法不曉得是否正確操作,由於這是考題所以無法實作。
還請各位指導,感謝~
作者: konkonchou (卡卡貓)   2019-10-21 00:53:00
先做一個查詢取出各科及對應最高成績, 再join原成績表
作者: beckhamert (小黑魚)   2019-11-26 14:56:00
RANK() OVER Partition by CNO order by degree 在找Rank=1即可 這樣應該可以ORDER BY記得加DESC

Links booklink

Contact Us: admin [ a t ] ucptt.com