[SQL] (已解决)如何取出分组后各组最高分与相关资讯

楼主: passion929 (baby)   2020-05-10 09:31:17
数据库名称:Microsoft Access
数据库版本:Access 2016
内容/问题描述:
各位大神好:
我们现在已经用Access建立好一个数据库,
数据库档案连结:
https://reurl.cc/rx3Vpx
表格也都是已经正规化完毕的,
各个表关系如图:

我们现在想要用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)
不知道大家有什么好建议~
感激不尽
楼主: passion929 (baby)   2020-05-10 21:26:00
已解决了谢谢

Links booklink

Contact Us: admin [ a t ] ucptt.com