sql - SAS:如何将双向表转化为实际变量?

标签 sql sas

我有石油运输数据,我需要创建这些数据的贸易流(按国家和地区划分的出发地-目的地)。例如,汇总从沙特阿拉伯、阿拉伯湾到美国、美湾的所有发货量。

我可以使用 proc tabulate 来完成此操作,但我想创建一个变量。我的变量是:LoadCountry、LoadArea、DischargeCountry、DischargeArea。此外,如果区域不同,则 LoadCountry 或 DischargeCountry 可以多次列出,因此不同的流包括所有四个变量。

我应该能够使用 PROC SQL,但我不知道如何对多个变量进行 GROUP BY 来创建聚合和:

proc sql;   
title 'LoadCountry-LoadArea-DischargeCountry-DischargeArea Trade flows';
create table data.TradeFlow as 
select LoadCountry, LoadArea, DischargeCountry, DischargeArea,
sum(CargoSize) as TotalCargo
from data.allvars1
Group by LoadCountry
Order by LoadCountry, DischargeCountry;
quit;

非常感谢任何帮助。

最佳答案

如果我理解正确的话,你就快完成了...只需将其他三个变量添加到 GROUP BY 子句中即可:

proc sql;   
title 'LoadCountry-LoadArea-DischargeCountry-DischargeArea Trade flows';
create table data.TradeFlow as 
select LoadCountry, LoadArea, DischargeCountry, DischargeArea,
sum(CargoSize) as TotalCargo
from data.allvars1
Group by LoadCountry, LoadArea, DischargeCountry, DischargeArea
Order by LoadCountry, DischargeCountry;
quit;

关于sql - SAS:如何将双向表转化为实际变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9069361/

相关文章:

sql - 在Excel中生成SQL语句的技巧

sql - 如何使用 mssql 获取每月每一天的值(value)

sas - 在 sas 中编辑相似值

使用 Case 的 SQL 数据范围

sql - STRING_AGG 忽略 PostgreSQL 中的 GROUP BY

mysql - 识别 Group By 中的组

variables - 如何堆叠来自不同变量的信息?

SAS PROC TABULATE 具有缺失值的多个类变量的百分比

相当于 rleid 函数的 SAS

view - 是否可以从 SAS View 表中获取源代码?