试图在PROC SQL中获取主题的唯一值

时间:2013-10-28 14:23:09

标签: sas proc-sql

Proc SQL NOPRINT;    
        Create Table DSDD as    
        Select DISTINCT (USUBJID),PRIMARY,ARM,ARMN,APTS,DSCOMP_F,APRS,FAS    
            From DERIVED.DSDD    
                Where UPCASE(APTS)="Y";    
Quit   

我想要USUBJID的独特价值。当我运行上面的代码时,我得到 512 观察结果。当我下面的代码我得到 490 的计数。我正在考虑USUBJID的独特价值吧?需要做些什么来获得 490 独特的观察结果。

Proc SQL NOPRINT;    
        Create Table DSDD as    
        Select COUNT(DISTINCT (USUBJID)) as     COUNT,PRIMARY,ARM,ARMN,APTS,DSCOMP_F,APRS,FAS    
            From DERIVED.DSDD    
                Where UPCASE(APTS)="Y";    
Quit

1 个答案:

答案 0 :(得分:2)

DISTINCT适用于整行,而不适用于单个变量。您可以使用group by要求它为您提供按USUBJID分组的行,但您需要告诉它如何处理各行 - 使用MAX(),{{1 },MIN()对这些变量进行分组;你不能让任何变量不在不在group by语句中的汇总函数中,否则你将得不到你想要的结果。