[SQL] (已解決)如何取出分組後各組最高分與相關資訊

作者: passion929 (baby)   2020-05-10 09:31:17
資料庫名稱: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)
不知道大家有什麼好建議~
感激不盡
作者: passion929 (baby)   2020-05-10 21:26:00
已解決了謝謝

Links booklink

Contact Us: admin [ a t ] ucptt.com