2010-04-14 58 views
2

我的表是这样的
SQL服务器 - 总和()列X,但增加了第Y列只有一次

A | X | Y 
--+---+-- 
1 | 2 | 3 
1 | 4 | 3 
2 | 9 | 1 
2 | 7 | 1 

我想是总结X列与GROUP BY A,但加上y只有一次。在第Y列中的值总是相同的特定A.

当我运行此:

SELECT SUM(X + Y) FROM TABLE GROUP BY A 

它给了我:12,18,但我需要9,17

感谢。

+0

我认为结果在原来的职位是正确的,但现在是“关闭”的。另外给出的例子看起来不正确。我认为它应该是“SELECT SUM(X + Y)FROM TABLE GROUP BY A” – 2010-04-14 17:54:27

+1

@Daniel:是的,谢谢。发布编辑。 – 2010-04-14 17:56:13

回答

5

看一看(SUM (Transact-SQL)

SUM([ALL | DISTINCT]表达式)

DECLARE @Table TABLE(
     A INT, 
     X FLOAT, 
     Y FLOAT 
) 
INSERT INTO @Table SELECT 1,2,3 
INSERT INTO @Table SELECT 1,4,3 
INSERT INTO @Table SELECT 2,9,1 
INSERT INTO @Table SELECT 2,7,1 

SELECT A, 
     SUM(X) + SUM(DISTINCT Y) SUMVals 
FROM @Table 
GROUP BY A 
+1

上次查询(编辑前)也工作!这看起来好多了。谢谢。 – 2010-04-14 17:52:48

+0

对不起,我完全忘了** SUM **中的** DISTINT **一会儿。我总是认为** COUNT(DISTINT)** X-) – 2010-04-14 17:56:46

4
SELECT SUM(X) + MIN(Y) FROM TABLE GROUP BY A 
+1

作品非常好,谢谢。不同的Y似乎是一个更好的选择。 – 2010-04-14 17:53:56

相关问题