0

我有一个表,其中包含:ID、FEATURE_NAME(这将是城市的名称)、STATE_ALPHA(两个字母的国家标识符,如阿拉巴马州的“AL”)和 POPULATION_DATA。

我需要:

  1. 查找具有相同 FEATURE_NAME 和 STATE_ALPHA 的条目
  2. 在两个(或多个)外观中获取 POPULATION_DATA 的值并添加它们
  3. 在 POPULATION_DATA 中记下所有加数的总和。

例子:

- ID !FEATURE NAME !  STATE_ALPHA  !  POPULATION DATA
-  1   Woodland          WA             83 
-  2   Woodland          WA            5426
-  3   Vining            KS             354 
-  4   Vining            KS             276
-  5   Vining            KS            1450

我需要得到的是:

- ID !FEATURE NAME !  STATE_ALPHA  !  POPULATION DATA
-  1   Woodland          WA            5509
-  2   Woodland          WA            5509
-  3   Vining            KS            2080 
-  4   Vining            KS            2080
-  5   Vining            KS            2080

我用谷歌搜索了几个小时,甚至不知道从哪里开始。此外,我将在不在原始表上的视图上运行该脚本,我不知道它是否会改变任何东西。请帮忙。

4

2 回答 2

1

您可以使用聚合和连接来做到这一点:

select t.id, t.feature_name, t.state_alpha, sumpop as Population_Data
from t join
     (select feature_name, state_alpha, sum(population_data) as sumpop
      from t
      group by feature_name, state_alpha
     ) fs
     on t.feature_name = fs.feature_name and
        t.state_alpha = fs.state_alpha;

聚合对总体求和(在子查询中fs)。这个结果被连接回原始数据。

于 2013-05-08T23:36:56.943 回答
0

如果我理解你的问题,一个简单的查询应该在表名所在的地方工作tablename

SELECT ID, FEATURE_NAME, STATE_ALPHA, POPULATION_DATA FROM tablename
FROM tablename
GROUP BY FEATURE_NAME, STATE_ALPHA
于 2013-05-08T23:26:57.033 回答