Re: [SQL ] MySQL如何select出各系的前三高分?
※ 引述《noguest (guest)》之銘言:
:
: 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;
:
: --
: 推 lcloud:我試的結果 還是跑出全部的資料@@ 09/20 14:53
我把在 Oracle 上執行的結果放上來, 結果應該是沒有錯:
==================================
SQL> set echo on
SQL> select * from tbl;
ID DEP SCORE
---------- ---------- ----------
1001 1 100
1001 2 80
1002 1 60
1003 1 80
1004 2 90
1005 1 70
1005 2 95
1006 2 88
1007 1 75
9 rows selected.
SQL> @query
SQL> SELECT x.id,x.dep, x.score
2 FROM tbl x
3 INNER JOIN tbl y ON x.score<=y.score AND x.dep=y.dep
4 GROUP BY x.id,x.dep, x.score
5 HAVING count(distinct y.score) <= 3
6 ORDER BY x.dep, x.score desc;
ID DEP SCORE
---------- ---------- ----------
1001 1 100
1003 1 80
1007 1 75
1005 2 95
1004 2 90
1006 2 88
6 rows selected.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 24.6.95.138
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
Database 近期熱門文章
PTT數位生活區 即時熱門文章