SQL sum行并选择一个唯一的id

时间:2014-09-04 15:41:01

标签: sql sql-server

我正在寻找一种求和多行的方法,并选择其中一行的唯一ID作为求和行的唯一ID ..如果这样做了吗?

例如,如果我有这样的表

ID       | Value1      Value2     Text1        Text2
---------|-------------------------------------------
1        |   100         150      Bananas      Hawaii
2        |   200         100      Bananas      Hawaii
3        |   300         200      Bananas      Hawaii
---------|--------------------------------------------
1,2 or 3 |   600         450      Bananas      Hawaii

要获得结果行,我会做类似的事情

SELECT 
  sum(Value1) as Value1
  sum(Value2) as Value2
FROM
  db..table
GROUP BY
  Text1
  ,Text2

但是我需要只检索其中一个ID以放在我的结果行上,我不在乎它会是1,2或3。

原因是,我有一个庞大的数据库和一个大程序来检索数据,但是由于一些新的编程我现在可以突然拥有更多相同的行,但是具有不同的唯一ID,因此我对此感兴趣对行进行求和并保留其中一个唯一ID。

为结果行分配一个新的唯一ID对我没有帮助,因为现在一切都是设计的。

我使用的是Microsoft SQL Server 2005。

2 个答案:

答案 0 :(得分:1)

请尝试:

SELECT 
  min(ID) as ID,
  sum(Value1) as Value1,
  sum(Value2) as Value2
FROM
  db..table
GROUP BY
  Text1
  ,Text2

答案 1 :(得分:1)

您可以使用其他聚合,例如MINMAX

SELECT min(ID) as ID
  ,sum(Value1) as Value1
  ,sum(Value2) as Value2
FROM
  db..table
GROUP BY
  Text1
  ,Text2