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

作者: cutekid (可愛小孩子)   2019-10-21 01:16:16
select t1.*
from score t1 inner join (
select cno,max(degree) as maxDegree
from score
group by cno
) t2 on t1.cno = t2.cno and t1.degree = t2.maxDegree
說明:
1. 黃色取出各科最高成績
2. 青色join黃色取得結果
※ 引述《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