SQL - 如果两个记录在两列中具有相同的值,请添加第三列

时间:2013-09-03 16:49:56

标签: sql sql-server

我有一张包含这些值的表格:

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     |  

谢谢。

2 个答案:

答案 0 :(得分:4)

只是一个非常简单,简单的GROUP BYSUM就可以解决问题:

SELECT 
    Col1, Col2, ColNew = SUM(Col3)
FROM 
    dbo.YourTable
GROUP BY 
    Col1, Col2

答案 1 :(得分: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