Re: [SQL ] 找出每個科目最高成績的學生名及成績
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
: 將成績表以科目與分數排列後,試圖捉出每個科目的最後一欄,
: 但是就不知道怎麼選出每個科目的最後一欄了......
: 各科目依照成績排列後的最後一欄,很明顯就是最高成績的學生了。
: 兩個寫法不曉得是否正確操作,由於這是考題所以無法實作。
: 還請各位指導,感謝~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.71.11.167 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1571626596.A.657.html
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
Database 近期熱門文章
PTT數位生活區 即時熱門文章