Re: [SQL ] MySQL如何select出各系的前三高分?

看板Database (資料庫)作者 (guest)時間18年前 (2006/09/19 12:53), 編輯推噓2(202)
留言4則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《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

09/20 14:53, , 1F
我試的結果 還是跑出全部的資料@@
09/20 14:53, 1F

09/21 10:35, , 2F
能把你的 query 列出來嗎? 我在 Oracle 上試沒問題
09/21 10:35, 2F

09/21 10:40, , 3F
我猜可能是把 Having 的 "y.成績" 打成 "x.成績"
09/21 10:40, 3F

09/21 10:44, , 4F
另外要注意在 INNER JOIN, 是 "x.成績<=y.成績", 不是等於
09/21 10:44, 4F
文章代碼(AID): #153tUz2P (Database)
文章代碼(AID): #153tUz2P (Database)