1
我具有由「通過實施例PROC SQL」,用於查找基於單個柱/場重複行啓發宏:擴展SAS MACRO到多個字段
data have ;
input name $ term $;
cards;
Joe 2000
Joe 2000
Joe 2002
Joe 2008
Sally 2001
Sally 2003
; run;
%MACRO DUPS(LIB, TABLE, GROUPBY) ;
PROC SQL ;
CREATE TABLE DUPROWS AS
SELECT &GROUPBY, COUNT(*) AS Duplicate_Rows
FROM &LIB..&TABLE
GROUP BY &GROUPBY
HAVING COUNT(*) > 1
ORDER BY Duplicate_Rows;
QUIT;
%MEND DUPS ;
%DUPS(WORK,have,name) ;
proc print data=duprows ; run;
我想延長這是爲了尋找基於多列的重複項(在我的例子中是第1行和第2行),但仍然足夠靈活來處理單個列。
在這種情況下,將運行代碼:
proc sql ;
create table duprows as select name,term,count(*) as Duplicate_Rows
from work.have
group by name,term
HAVING COUNT(*) > 1
;quit;
生產出:
是的,我試圖通過一個引用的字符串,並使用unquote。不過,我認爲這很有效,並且會服務於我的目的。 –
@WesMcClintick:很好,我很高興這對你有用。 –