作者noguest (guest)
看板Database
標題Re: [SQL ] MySQL如何select出各系的前三高分?
時間Tue Sep 19 13:03:09 2006
※ 引述《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
1F:推 lcloud:我試的結果 還是跑出全部的資料@@ 09/20 14:53
2F:推 noguest:能把你的 query 列出來嗎? 我在 Oracle 上試沒問題 09/21 10:35
3F:→ noguest:我猜可能是把 Having 的 "y.成績" 打成 "x.成績" 09/21 10:40
4F:→ noguest:另外要注意在 INNER JOIN, 是 "x.成績<=y.成績", 不是等於 09/21 10:44