SUM的多个不同值

kaw*_*fan 1 sql sql-server stored-procedures

我有一个数据就像的表

userID      name        amount   Date
     1        mark        20     22-10
     1        mark        30     22-10
     2        kane        50     22-12  
     2        kane        60     22-12
     3        mike        60     22-10 
Run Code Online (Sandbox Code Playgroud)

使用userID +用户名+日期的组合,日期是唯一的

但由于其超过100k的记录,可能会有重复的日期记录,但其他用户ID和名称都没有

现在我想输出像

userID      name        amount    Date
     1        mark        50      22-10
     2        kane        110     22-12 
     3        mike        60      22-10
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用ID,名称,总和(金额),日期,它返回多行并回答错误

我尝试了各种distict和SUM等组合,但没有成功任何解决方案谢谢

Lie*_*ers 7

您通常使用GROUP BY通过一个或多个其他字段聚合一个或多个字段.

SELECT  userID, Name, SUM(amount), MIN(date)
FROM    YourTable
GROUP BY
        userID, Name
Run Code Online (Sandbox Code Playgroud)

来自MSDN:聚合函数

聚合函数对一组值执行计算并返回单个值.除COUNT外,聚合函数忽略空值.聚合函数通常与SELECT语句的GROUP BY子句一起使用.

一些典型的聚合函数是

  • MIN
  • AVG
  • ...

来自MSDN:GROUP BY

通过SQL Server 2008 R2中的一个或多个列或表达式的值将选定的一组行分组到一组摘要行中.每组返回一行.SELECT子句列表中的聚合函数提供有关每个组而不是单个行的信息.