-3

我有一个 2 列的表,1 是一个 id,另一个是一个 int。

我如何对唯一 ID 的整数求和?

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

Result: 6 (2+2+2)
4

2 回答 2

1
select sum(int)
from mytab t where not exists
   (select * from mytab 
    where id = t.id
    group by id
    having count(*) > 1)
于 2013-10-18T20:58:04.570 回答
1

假设如果一个 Id 在表中出现不止一次,它具有相同的值,那么以下应该有效:

SQL小提琴

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

但是,如果 ID 相同的记录中的值可能不同,那么您将不得不以不同的方式进行处理。在以下示例中,我只提取最高值:

SQL小提琴

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 
于 2013-10-18T20:49:13.307 回答