作者passion929 (baby)
看板Database
标题[SQL] 如何取出分组後各组最高分与相关资讯
时间Sun May 10 09:31:17 2020
资料库名称:Microsoft Access
资料库版本:Access 2016
内容/问题描述:
各位大神好:
我们现在已经用Access建立好一个资料库,
资料库档案连结:
https://reurl.cc/rx3Vpx
表格也都是已经正规化完毕的,
各个表关系如图:
https://imgur.com/XxIsa00
我们现在想要用student这张表的degree+major作为分组
major是科系名称缩写
degree是大学/研究所/博士生
我们想取出各组的最高分,
例如ACC科系的博士生会有最高分
ACC科系的硕士生也会有最高分
输出的资料想要包含degree, major, studentID, StudentFirstName, StudentLastName这些资料,
如果同一组有不只一位最高分,
就全部都撷取出来。
苦思很久也只写得出
SELECT DISTINCT g.StudentID, s.Degree, s.Major, s.StudentFirstName, s.StudentLastName, g.GPA
FROM student s,
(SELECT DISTINCT e.StudentID, t.GPA
FROM enrollment e
INNER JOIN Transcript t
ON e.TranscriptID = t.TranscriptID) g
WHERE g.StudentID = s.StudentID
ORDER BY s.Degree, s.Major, g.GPA DESC;
现在的结果会把所有学生按照Degree, Major分类并按GPA高低排序,
但是全部的学生都跑出来了,而我们只想要各组第一名啊~
想要进一步用group by分组也行不通,
(syntax error)
不知道大家有什麽好建议~
感激不尽
-----
Sent from JPTT on my iPhone
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 142.255.98.214 (美国)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1589074279.A.8EC.html
1F:→ passion929: 已解决了谢谢 05/10 21:26