Mssql如何选择前10行的SUM

abc*_*cba 3 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
Run Code Online (Sandbox Code Playgroud)

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

UserName    Score     
__________________
Bowei       280
James       170
Linko       90        
Run Code Online (Sandbox Code Playgroud)

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

dan*_*ana 5

使用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
Run Code Online (Sandbox Code Playgroud)