SQL DB2:如何聚合列数据

时间:2018-03-05 23:32:08

标签: sql db2 aggregate

我对sum()函数有点熟悉,但在这种情况下,我很难搞清楚这一点。请注意下面的数据示例

**Address | State | People | Cars**
Rain St. | AZ | 38 | 27

地址和州都是一样的。我需要做的是将重复的地址/州的人员和汽车数量汇总到一个列中,用于所有重复项 - 如下所示

xdat <- data.frame( 
  hier = c(rep("A",5), rep("B",5) )
  , val = c(4, 7, -3, 10, 5, 1, -7, -4, 5, 7)
           )

hier |  val | val_adjust
A    |  4   |    4
A    |  7   |    7
A    |  -3  |    3.5
A    |  10  |    10
A    |  5   |    5
B    |  1   |    1
B    |  -7  |    0.5
B    |  -4  |    0.25
B    |  5   |    5
B    |  7   |    7

如何做到这一点?我觉得我很近,但我错过了一些东西。任何帮助表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:1)

使用sum而不是count来获得示例中显示的所需结果。对于所有重复项,以下sql将重复的地址/州的人员和汽车数量聚合到一个列中。要同时包含非重复记录,请删除having子句。

select address, state, sum(pepole) as people, sum(cars) as cars 
from table1
group by address , state
having count(*) > 1