sql - Mssql如何选择前10行的SUM

标签 sql sql-server sql-server-2008

我的数据示例如下

UserName    Score     Subject
_____________________________
James       80        DDC1
James       90        EGG2
Amy         80        OPP8
Jemmy       50        CBC5
Linko       90        DD1
Bowie       80        AZZ6
Bowie       100       GGC1
Bowie       100       EOO2

我想选择总分最高的前3名,输出应如下,

UserName    Score     
__________________
Bowei       280
James       170
Linko       90        

我可以知道如何在Mssql查询中编写这个吗?

最佳答案

使用GROUP BY子句按UserName对行进行分组。 SUM() 聚合可用于计算每个组(用户名)的总分。使用 ORDER BY 子句首先显示最大的总分数。最后,TOP 允许您选择前 N 个结果。

select top 3 UserName, sum(Score) as Score
from UserScores
group by UserName
order by sum(Score) desc

关于sql - Mssql如何选择前10行的SUM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42817791/

相关文章:

sql-server - SQL Server 中的事务隔离级别可重复读取

c# - 如何在 EF-Code-First 中指定主键名称

sql-server - SQL Server 递归查询

php - Mysql 和 PHP 查询

python - sqlalchemy 如何在 OR 操作中使用 AND?

sql - SP 需要 15 分钟,但执行相同的查询会在 1-2 分钟内返回结果

c# - 首先将 READ_COMMITTED_SNAPSHOT 与 EF 代码结合使用 5

mysql - 在 WHERE 子句中使用 SELECT 子查询不起作用

javascript - 需要将长文本变量从 JavaScript 传递到 PHP

performance - 为什么这是索引扫描而不是索引搜索?