在SAS中,如果我想刪除帶有重複項的排序數據,我可以使用proc sort
和noduprecs
選項。而nodupkey
選項可以通過一些鍵列刪除SQL Server中按鍵列的重複項
e.g
proc sort data=HAVE out=WANT nodupkey;by var1, var2;run;
在SQL Server中刪除重複的,我知道select distinct *
可以產生類似proc sort noduprecs
。但是如何在SAS中產生類似proc sort nodupkey;by var1, var2
的輸出? (返回第一值,如果存在重複)
EDIT
通過使用概要funtion像max
,重複的可被移除,而最大的那些列的在group by
聲明不specifed會返回。
select key1, max(var1) as var1, key2, key3, max(var2) as var2, max(var3) as var3
from #HAVE
group by key1, key2, key3
但我想要的是返回(var1,var2,var3)的第一個組合。
鑑於
key1 var1 key2 key3 var2 var3
K1 20 K2 K3 30 BB
K1 10 K2 K3 40 AA
理想的輸出是
key1 var1 key2 key3 var2 var3
K1 20 K2 K3 30 BB
不
key1 var1 key2 key3 var2 var3
K1 20 K2 K3 40 AA
說一個*** SELECT DISTINCT列1,列2 FROM表***爲你工作? – 2014-10-29 08:14:28
我不需要在'select'語句中包含其他列嗎? – Lovnlust 2014-10-29 08:18:12
沒有這樣的東西,作爲key1,key2,key3的第一組合。這是沒有道理的。也許如果你有一個autoincremental Id列或時間戳 – 2014-10-29 08:57:26