Mssql如何选择前10行的SUM

时间:2017-03-15 18:23:52

标签: 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

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

UserName    Score     
__________________
Bowei       280
James       170
Linko       90        

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

1 个答案:

答案 0 :(得分:4)

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

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