3
喜用一組前N行的SQL查詢我嘗試過很多辦法來解決這一點,但缺少一些東西.. 我有兩個表的學生和分數由
Sid Cid Score
6 1 90
1 1 80
4 1 80
3 1 70
2 1 60
6 2 80
1 2 70
2 2 60
4 2 60
5 2 50
4 3 80
7 3 80
6 3 70
8 3 60
2 3 50
Sid Sname Sbday Ssex
1 As 1980 female
2 Al 1986 male
3 An 1989 male
4 ja 1986 male
5 ma 1983 female
6 phi 1986 male
7 Geo 1993 male
8 lil 1990 female
9 cha 1993 male
我需要回到希德和SNAME每門課程的成績排名前2的學生。 如果存在,則返回每個課程的所有男生中得分最高的學生的Sid和Sname。
這裏前兩名的得分最高的不僅僅是前兩名的記錄:前兩名的最高得分是90,80,80。
我需要出去把這樣
Sid Cid Score
6 1 90
1 1 80
4 1 80
6 2 80
1 2 70
2 2 60
4 2 60
4 3 80
7 3 80
6 3 70
我嘗試下面的代碼:
select A.Sid , S.SNAME, Score,Cid
from Score a,STUDENTS S
where 2 >(select count(Cid)
from Score
where Cid=a.Cid
and Score>a.Score)
AND A.SID = S.SID
order by Cid,Score desc
非常感謝! ..我嘗試使用Rank()函數..我不知道Dense_Rank()..再次感謝.. – user630605 2011-02-23 17:49:30