0
GroupName         Name         BucketID AddInd
Test Group 2      Males 0-9    1        12
Test Group 2      Males 10-17  2        12
Test Group 2      Males 18-24  3         1
Test Group 2      Males 18-24  3         4
Test Group 2      Males 25+    4         2
Test Group 3      Males 10-17  2         3
Test Group 3      Males 18-24  3         4
Test Group 3      Males 25+    4         6
Test Youth Group  Males 10-17  2         2
Test Youth Group  Males 18-24  3        12
Test Youth Group  Males 25+    4        NULL

因此,从这些数据(示例)中,我需要在每个组中提取名称的 MAX(AddInd),然后将其中的每一个求和到结果中。

例如:测试组 2 有两个男性 18-24,所以我只想要 MAX 一 (4)

Test Group 2      Males 18-24  3         1
Test Group 2      Males 18-24  3         4

然后需要将其与其他组中所有其他 18-24 岁的男性相加,例如

Test Youth Group  Males 18-24  3        12
Test Group 3      Males 18-24  3         4

所以,我的答案需要是 4+12+4 的总和。

我无法弄清楚查询。有任何想法吗?

4

1 回答 1

1

似乎您可以使用内联视图来获得所需的内容。

SELECT name, 
       Sum (max_addind) 
FROM   (SELECT groupname, 
               name, 
               Max(addind) max_AddInd 
        FROM   groups 
        GROUP  BY groupname, 
                  name) AS t 
GROUP  BY name 

演示

产生这个输出

|        NAME |          |
--------------------------
|   Males 0-9 |       12 |
| Males 10-17 |       17 |
| Males 18-24 |       20 |
|   Males 25+ |        8 |
于 2013-06-28T18:17:47.730 回答