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等组合,但没有成功任何解决方案谢谢
您通常使用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子句一起使用.
一些典型的聚合函数是
来自MSDN:GROUP BY
通过SQL Server 2008 R2中的一个或多个列或表达式的值将选定的一组行分组到一组摘要行中.每组返回一行.SELECT子句列表中的聚合函数提供有关每个组而不是单个行的信息.