如何按条件将信息汇总到不同的列中?

时间:2019-07-25 14:21:21

标签: sql sas

我正在使用sql(通过procsql在sas中)获取表。

我设法将一堆不同的表合并在一起,并将所有信息汇总到一个表中,但是我不知道该怎么做。

我有3栏。细分,国家/地区,收入。

Segment | Country|Revenue|
A       |   USA  |   3   |
A       |   CAN  |   2   |
A       |   FRA  |   1   |
A       |   ITA  |   2   |
.
.
.

我需要的是通过将这些国家分类为大洲来汇总收入:像这样

Segment | America| Europe|
A       |   5    |   3   |
B       |   7    |   10  |

老实说,我不知道如何开始。我可以创建两个表,使用按国家/地区进行过滤的位置,然后进行合并,但我想知道是否还有更直接的方法。

1 个答案:

答案 0 :(得分:1)

您可以使用条件聚合。如果您有国家/地区的硬清单:

proc sql;
    select segment, sum(case when country in ('USA', 'CAN', . . .) then revenue end) as americas,
           sum(case when country in ('FRA', 'ITA', . . . ) then revenue end) as europe
    from t
    group by segment;