尝试使用PROC SQL为SAS中的唯一键获取最低值

尝试使用PROC SQL为SAS中的唯一键获取最低值,sql,sas,Sql,Sas,在SAS中,我试图创建一个表,每个唯一键(Apl_键)只有一行。不幸的是,对于每个唯一键(Apl_键),我有几个分数值(SCOR_RSLT_RAW_SCOR);因此,我想只取每个键的最低分值 这就是桌子的一部分,我不想把它缩小: 我尝试将其更改为最低分数的代码是: 显然,这是行不通的。我不是最精通SQL或SAS编码的人;所以一些帮助将是伟大的 如果您在一个表中有数据,这里有一种方法: proc sql; select t.* from t where t.SCO

在SAS中,我试图创建一个表,每个唯一键(Apl_键)只有一行。不幸的是,对于每个唯一键(Apl_键),我有几个分数值(SCOR_RSLT_RAW_SCOR);因此,我想只取每个键的最低分值

这就是桌子的一部分,我不想把它缩小:

我尝试将其更改为最低分数的代码是:


显然,这是行不通的。我不是最精通SQL或SAS编码的人;所以一些帮助将是伟大的

如果您在一个表中有数据,这里有一种方法:

proc sql;
     select t.*
     from t
     where t.SCOR_RSLT_RAW_SCOR = (select min(t2.SCOR_RSLT_RAW_SCOR)
                                   from t t2
                                   where t2.apl_key = t.apl_key
                                  );
quit;

你试过使用分组吗

下面是一个示例,用于仅拉动apl_键及其关联的最小SCOR_RSLT_RAW_SCOR。您可以将相同的逻辑扩展到select语句中的所有其他变量

proc sql;
create table test as
select apl_key, min(SCOR_RSLT_RAW_SCOR)
from pl_mat.ECCVStable
group by apl_key;
quit;

你的问题是关于一张桌子的。您的代码引用了多个表。这令人困惑。另外,您应该在问题中包含代码。对不起。如果没有where语句,我输入的代码图片将生成我输入的输出表的一部分。所以,这一切都在一张桌子上