2014-02-10 26 views
0

我有一個跨5個變量唯一的數據集。第五個是標識符變量。最後,我有第六個變量,它依賴於標識符變量。獲取對應於不同的行的值? (proc sql)

標識變量可以出現在多個位置。對於標識符變量的給定值,因變量永遠不會改變。

我有代碼,如下述:

proc sql; 
select 
... 
, count(distinct identifier) as n_ids 
from 
group by 

,其選擇每4個獨立變量組的唯一標識符的數量。我希望添加到這個總和的6可變的,這將是類似以下內容:

sum(case when distinct identifier then dependent_var else 0 end) 

這顯然是行不通的(有很好的理由)。在SQL步驟中找到這個總和的任何干淨的方式?

+0

如果您添加了一個小數據樣本,這將會有所幫助。我不確定我完全理解數據的外觀以及您想要完成的工作。 – DomPazz

回答

1

最簡單的解決方案可能是第一個由標識符來概括數據集:

proc sql; 
select biggerstuff, identifier, max(depvar) 
from yourdataset 
group by biggerstuff,identifier; 
quit; 

然後插入在大的查詢中的「從」語句的地方(選擇等等,計數(標識),總和(depvar))。一旦你在內部查詢中預先總結了它,你就知道每個標識符只能得到1行,因此不再需要不同的特徵。

+0

作品。我希望有一種簡單的方法可以在單個選擇中完成,但這樣做就足夠了 – Nate