0

我有一个包含这些值的表:

Col1  | Col2    | Col3 |  
one   | two     |  3   |  
four  | five    |  6   |  
four  | seven   |  8   |  
four  | seven   |  9   |  

我想做一个查询,为其中 Col1 和 Col2 都不同于其他所有记录的每条记录返回一行,但如果它们在两条记录中都相同,则结果应该是单行,其中 Col1 中的这些值和 Col2 和它们的 Col3 在第三列中求和。结果应该是:

Col1  | Col2   | ColNew |  
one   | two    |  3     |  
four  | five   |  6     |  
four  | seven  | 17     |  

谢谢你。

4

2 回答 2

4

只是一个非常简单,简单GROUP BYSUM会做的伎俩:

SELECT 
    Col1, Col2, ColNew = SUM(Col3)
FROM 
    dbo.YourTable
GROUP BY 
    Col1, Col2
于 2013-09-03T16:51:35.563 回答
2

GROUP BY在要“分组依据”的列上使用(在您的情况下为 1 和 2)。然后SUM在要“求和”的列上使用(在您的情况下为 3)。

select a.col1, a.col2, sum(a.col3) as colNew
from test as a
group by a.col1, a.col2;

SQLFiddle:http ://sqlfiddle.com/#!3/070a3/4

于 2013-09-03T16:58:52.547 回答