看板 Database 關於我們 聯絡資訊
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 : 將成績表以科目與分數排列後,試圖捉出每個科目的最後一欄, : 但是就不知道怎麼選出每個科目的最後一欄了...... : 各科目依照成績排列後的最後一欄,很明顯就是最高成績的學生了。 : 兩個寫法不曉得是否正確操作,由於這是考題所以無法實作。 : 還請各位指導,感謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.168.240.96 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1571591778.A.921.html