2012-01-30 162 views
2

我有關於石油裝運的數據,我需要創建這些貿易流量(按國家和地區來源 - 目的地)。例如,總結從沙特阿拉伯,阿拉伯海灣到美國,美國海灣的所有貨物。SAS:如何將雙向錶轉換爲實際變量?

我可以做到這一點使用proc列表,但我想創建一個變量。我的變量是:LoadCountry,LoadArea,DischargeCountry,DischargeArea。另外,如果面積不同,LoadCountry或DischargeCountry可以多次列出,因此不同的流量包含所有四個變量。

我應該能夠使用SQL PROC,但我無法弄清楚如何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; 

任何幫助最讚賞。

回答

2

如果我理解正確的話,你幾乎沒有...就在其他三個變量添加到您的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; 
+0

甜,那工作,謝謝! – Sassafras 2012-01-31 08:44:12

+0

嘿@SophiaParker - 歡迎來到StackOverflow!由於sasfrog的答案完成了你所需要的工作,你應該通過檢查表決箭頭下方的綠色複選標記來標記它爲最好 - 它可以讓其他人知道你的問題已經解決,並給了sasfrog一些額外的聲望點。 – 2012-01-31 20:48:03