2013-10-18 67 views
-3

我有一个2列的表,1是一个ID和其他是一个int。SQL Server:其他值分开的SUM值

我如何总结唯一ID的整数?

Eg 
Id Value 
1 2 
1 2 
2 2 
3 2 
2 2 
3 2 

Result: 6 (2+2+2) 
+3

不清楚你在问什么。如果你没有完成所有'Value''''''',我们可能有更多的机会计算出你需要的东西。 [此示例数据](http://pastebin.com/eh9yFpAC)的理想结果是什么?为什么? –

+0

你的结果没有意义。数据中的ID都不是唯一的。如果你的意思是你只想从其中一个中求出int值,当存在​​多个int值时,你如何决定选择哪一个?每个可能在int列中都有不同的值。 –

+0

道歉,只是为了澄清; id不是唯一的,但是与它们相关的值总是相同的,所以你可以通过区分假设你不冒险删除一些数据的id,例如,所有id = 1的值都将为value = 2。它总是会减少到1 = 2,2 = 2,3 = 2 – Fearghal

回答

1

假设如果ID比它具有相同的值的表存在一次以上,那么下面应该工作:

SQL Fiddle

SELECT Sum(T.Value) FROM 
(
    SELECT DISTINCT M.Id, M.Value FROM MyTable AS M 
)AS T 

但是,如果该值可以不同的Id是相同的记录,那么你将不得不采取不同的方式。在下面的例子中我只是拉顶值:

SQL Fiddle

SELECT Sum(T.Value) FROM 
(
    SELECT DISTINCT M.Id, 
    (
    SELECT TOP(1) MV.Value 
    FROM MyTable AS MV 
    WHERE MV.Id = M.Id 
    ORDER By MV.Value DESC 
) AS Value 
    FROM MyTable AS M 
)AS T 
1
select sum(int) 
from mytab t where not exists 
    (select * from mytab 
    where id = t.id 
    group by id 
    having count(*) > 1)