【问题标题】:How to implement score ranking如何实现分数排名
【发布时间】:2013-08-19 06:13:00
【问题描述】:

我有一个student 表(sid,sname),一个课程tablecid,cname)和一个sc 表(sid,cid,@ 987654330@)。

如何对学生信息及其总分按总分排序,如果总分相同,则按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

【问题讨论】:

  • 您对已有的查询有任何问题吗?
  • 当前查询出错...调用本机函数“ISNULL”时参数计数不正确...

标签: sql-server tsql


【解决方案1】:

如果我理解正确,您可以在查询中使用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

working demo on SQL Fiddle

【讨论】:

    猜你喜欢
    • 2014-03-05
    • 2021-09-01
    • 2020-04-10
    • 2021-01-02
    • 2021-02-20
    • 2018-11-12
    • 1970-01-01
    • 2022-07-04
    • 1970-01-01
    相关资源
    最近更新 更多