Sql 如何从每个重复条目中仅求和一个值
我试图对一组值求和,但有一个包含重复项的表。使用distinct和sum with group by结束了对所有值的求和,而不是每个用户ID中只有一个值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 |
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添加唯一约束可能是更好的解决方案。