Sql 如何从每个重复条目中仅求和一个值

Sql 如何从每个重复条目中仅求和一个值,sql,Sql,我试图对一组值求和,但有一个包含重复项的表。使用distinct和sum with group by结束了对所有值的求和,而不是每个用户ID中只有一个值 UserID | Value 1 | 200 1 | 200 1 | 200 2 | 500 2 | 500 2 | 500 3 | 800 3 | 800 4 | 200 4 | 200 我希望输出如下: NumberOfUsers |

我试图对一组值求和,但有一个包含重复项的表。使用distinct和sum with group by结束了对所有值的求和,而不是每个用户ID中只有一个值

UserID | Value
1      | 200
1      | 200
1      | 200
2      | 500 
2      | 500 
2      | 500 
3      | 800
3      | 800
4      | 200
4      | 200
我希望输出如下:

NumberOfUsers | Total
4             | 1700

先进行
区分
,然后进行
求和

SELECT Count(UserID) AS NumberOfUsers, SUM(Value) AS Total
FROM
  (SELECT DISTINCT UserID, Value
   FROM Table
  ) AS subqry

SQLFiddle示例。

首先执行您的
DISTINCT
,然后执行
SUM

SELECT Count(UserID) AS NumberOfUsers, SUM(Value) AS Total
FROM
  (SELECT DISTINCT UserID, Value
   FROM Table
  ) AS subqry

SQLFiddle示例。

如果需要重复的行,则同意这是答案。他们可能还想看看是否有必要拥有重复的行。删除所有重复行并向UserID添加唯一约束可能是更好的解决方案。如果需要重复行,请同意这是答案。他们可能还想看看是否有必要拥有重复的行。删除所有重复行并向UserID添加唯一约束可能是更好的解决方案。