0

我有一张student桌子 ( sid, sname)、一门课程table( cid, cname) 和一张sc桌子 ( sid, cid, score)。

如何对学生信息及其总分按总分排序,如果总分相同,按cid.

我当前的SQL如下:

SELECT s.Sname,ISNULL(SUM(ss.Score),0) 
FROM Student s 
LEFT JOIN SC ss 
    ON s.Sid=ss.Sid 
GROUP BY s.Sname 
ORDER BY SUM(ss.Score) DESC
4

1 回答 1

3

如果我理解正确,您可以rank在查询中使用。尝试以下操作:

SELECT rank() OVER (ORDER BY SUM(ss.Score) DESC) as rank, s.Sname, ISNULL(SUM(ss.Score),0) 
FROM Student s LEFT JOIN SC ss 
ON s.Sid = ss.Sid 
GROUP BY s.Sname 
ORDER BY SUM(ss.Score) DESC

请参阅SQL Fiddle 上的工作演示

于 2013-08-19T06:40:20.877 回答