作者paranoia5201 (社会黑暗、行路难)
看板Database
标题[SQL ] 找出每个科目最高成绩的学生名及成绩
时间Mon Oct 21 00:04:27 2019
资料库名称:无
资料库版本:无
内容/问题描述:(这是一个考题)
有一张成绩表为score,其中有三个栏位:课程名称cno,学生代号sno,修课成绩degree。
如何取出各科目最高成绩之学生代码及修课成绩?
简单的想法:
(select cno, sno, max(degree) from score group by cno)
上述结果我不确定sno会是对应出最高分数的学生名吗?
另一个想法:(未完成)
select * from score order by cno, degree
将成绩表以科目与分数排列後,试图捉出每个科目的最後一栏,
但是就不知道怎麽选出每个科目的最後一栏了......
各科目依照成绩排列後的最後一栏,很明显就是最高成绩的学生了。
两个写法不晓得是否正确操作,由於这是考题所以无法实作。
还请各位指导,感谢~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.177.36.225 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1571587469.A.26E.html
1F:→ konkonchou: 先做一个查询取出各科及对应最高成绩, 再join原成绩表 10/21 00:53
2F:推 beckhamert: RANK() OVER Partition by CNO order by degree 在 11/26 14:56
3F:→ beckhamert: 找Rank=1即可 这样应该可以 11/26 14:56
4F:→ beckhamert: ORDER BY记得加DESC 11/26 14:57