[SQL] 如何取出分組後各組最高分與相關資訊
資料庫名稱: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://www.ptt.cc/bbs/Database/M.1589074279.A.8EC.html
→
05/10 21:26,
4年前
, 1F
05/10 21:26, 1F
Database 近期熱門文章
PTT數位生活區 即時熱門文章