The SAS-macro below will tell you if a variable in a dataset is unique.
/******************************************************************************** Author : Creation date : ddmmmyyy Description : Gets info about uniqness in a SAS-dataset. Example : %uniq(sashelp.class, name, print) ********************************************************************************* Input ----- &datset : The dataset to test. &variable : The variable to test for uniqueness. &print : If the output/result should be shown in a PROC PRINT. ********************************************************************************* Output ------ freq_result : Dataset sorted with doublets as first rows. freq_result_doublets : Data containing only the doublets. ********************************************************************************/ %macro uniq(dataset, variable, print); proc freq data=&dataset.; tables &variable / noprint out=freq_result; run; proc sort data=freq_result; by descending count; run; data freq_result_doublets; set freq_result; where count gt 1; run; proc sql noprint; select count(*) into :doublets from freq_result_doublets where count gt 1 ; quit; %put --------------------------------------------------------------------------------------------; %put NUMBER OF DOUBLETS IN [%upcase(&dataset.)] FOR VARIABLE [%upcase(&variable.)]: &doublets.; %put --------------------------------------------------------------------------------------------; %if &doublets. eq 0 %then %do; %put !!!! NO DOUBLETS !!!; %put --------------------------------------------------------------------------------------------; %end; %if &print. ne %then %do; proc print data=freq_result; run; %end; %mend;