好贷网好贷款

SQL2005 Rank()的问题 20CSDN]

发布时间:2016-12-5 12:36:54 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"SQL2005 Rank()的问题 20CSDN]",主要涉及到SQL2005 Rank()的问题 20CSDN]方面的内容,对于SQL2005 Rank()的问题 20CSDN]感兴趣的同学可以参考一下。

Select Student,Sum(Result) as Total,Rank() OVER(ORDER BY Sum(Result) Desc) AS Rank From S_Results Where Exam = '12' And School = '1' GROUP BY Student 无错,返回 Student Total Rank 46 595 1 44 585 2 45 555 3 47 515 4 如果我想单独返回Student为45的那一行记录,又要保持Rank()返回的排名(因为RANK计算排名的取例范围是在查询结果内) 如果 Select Student,Sum(Result) as Total,Rank() OVER(ORDER BY Sum(Result) Desc) AS Rank From S_Results Where Exam = '12' And School = '1' And Student = '45' GROUP BY Student 的话, RANK就不是3而是1了 如果这样 Select * From (Select Student,Sum(Result) as Total,Rank() OVER(ORDER BY Sum(Result) Desc) AS Rank From S_Results Where Exam = '12' And School = '1' GROUP BY Student) Where Student = '45' 就会报错, 因为子查询中是不能有ORDER BY的,但是Rank()必须指定ORDER BY 求解,在线等...

having

Select * From (Select Student,Sum(Result) as Total,Rank() OVER(ORDER BY Sum(Result) Desc)  AS Rank From S_Results Where Exam = '12' And School = '1' GROUP BY Student) a  Where Student = '45'

上一篇:以后在SQL Server中编程Stored Procedure的参数传递是不只需要一个XML文件就可以,不用定义那么多花里胡哨的DateTime,Varchar等等 0CSDN]
下一篇:reporting services 2005 20being21]

相关文章

相关评论