sql-server - 如何在单个查询中选择数据?

标签 sql-server sql-server-2008

希望你们一切都好 我有这样的问题。 一类学生参加了考试。 现在我想选择获得最高分的前 3 名职位持有人。 现在的情况是..如果有两名学生获得 100 分,一名获得 99 分,一名获得 98 分,那么有四名学生获得前 3 名

Student1 = 100 marks at first position
Student2 = 100 marks at first position
Student3 = 99 marks at second position
Student4 = 98 marks at thirs position

我怎样才能让这四个学生获得前三个位置 如果我使用查询 按月保费 desc 从被保险人订单中选择前 3 名月保费 然后它返回前 3 行,即

Student1 = 100 marks (who is at first position)
Student2 = 100 marks (who is at first position)
Student3 = 99 marks (who is at second position)
while the student4 = 98 at third poistion is missing.

任何人都可以告诉我选择所有这些学生的正确查询吗? 谢谢

最佳答案

Select Student,Marks,Rank from (
Select Student,
       Marks,
       Dense_Rank() Over(Order by Marks Desc) as Rank from TableName
    )t 
     where t.Rank<4 

关于sql-server - 如何在单个查询中选择数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17879344/

相关文章:

sql-server-2008 - 如何确定已将什么许可证应用于我的SQL Server安装?

sql - 超时已过。操作完成前超时时间已过或服务器未响应

sql - 用于连接 sql 表的 CASE

c# - 不使用 Web 服务的 C# 中的实时股票行情

sql-server - 实现 MFA 后管道失败

sql - 以编程方式获取 SQL 中 float 的最大值

sql-server - SQL 递增整数列,即使为 null

sql-server - SQL Server 中查询的优先级

c# - 我的 C# 应用程序中应该使用多少个 DataTable 对象?

sql - 选择最大(日期)和表名称作为列