如何只对每个重复条目中的一个值求和

eha*_*abd 0 sql

我试图总结一堆值,但有一个重复条目的表.使用distinct和sum与group最后将所有值相加而不是每个UserID中只有一个.

UserID | Value
1      | 200
1      | 200
1      | 200
2      | 500 
2      | 500 
2      | 500 
3      | 800
3      | 800
4      | 200
4      | 200
Run Code Online (Sandbox Code Playgroud)

我希望输出如下:

NumberOfUsers | Total
4             | 1700
Run Code Online (Sandbox Code Playgroud)

Jef*_*erg 6

先做DISTINCT,然后SUM:

SELECT Count(UserID) AS NumberOfUsers, SUM(Value) AS Total
FROM
  (SELECT DISTINCT UserID, Value
   FROM Table
  ) AS subqry
Run Code Online (Sandbox Code Playgroud)

SQLFiddle示例在这里.

  • 如果需要重复的行,请同意这是答案.他们可能还想查看是否需要重复行.删除所有重复行并向UserID添加唯一约束可能是更好的解决方案. (2认同)