看板 Database 關於我們 聯絡資訊
※ 引述《grassboy2 (天才小胖子-草兒活力花俏)》之銘言: : 內容/問題描述: : 假設…我的table是如此安排 : 學號 科系 學期成績 : ------------------------------------- : 924144 A 99 : 922110 B 96 : 924052 A 100 : : : 那…有辦法選出各系前三高分的同學嗎? : 之前爬文應該可以用MAX選出最高分… : 不過前三高分就考倒我了><~ : 先謝謝高手的回答了><~ SELECT x.學號, x.科系, x.成績 FROM tbl x INNER JOIN tbl y ON x.成績<=y.成績 AND x.科系=y.科系 GROUP BY x.學號, x.科系, x.成績 HAVING count(distinct y.成績) <= 3 ORDER BY x.科系, x.成績 desc; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 24.6.95.138
lcloud:我試的結果 還是跑出全部的資料@@ 09/20 14:53
noguest:能把你的 query 列出來嗎? 我在 Oracle 上試沒問題 09/21 10:35
noguest:我猜可能是把 Having 的 "y.成績" 打成 "x.成績" 09/21 10:40
noguest:另外要注意在 INNER JOIN, 是 "x.成績<=y.成績", 不是等於 09/21 10:44