在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