首页 > 解决方案 > SAS PROC SQL 提取与第二个变量的值关联的变量

问题描述

我对 PROC SQL 比较陌生。我搜索了 SO 和其他地方,但没有找到任何可以解决我的问题的东西。

我正在处理学生转学成绩信息。学生(超出您的预期)多次参加课程。我正在尝试从数据集中提取他们获得的最佳成绩以及他们获得最佳成绩的学期。我能够用 min(grade) 语句提取最好的成绩。但是,我很难理解这个术语。下面是我所拥有的。它返回所有术语,而不是与最低成绩关联的术语。

proc sql;   
create table MATH_2413_trm as   
select ID as ID, Math_TRNS_2413_Term as Math_TRNS_2413_Term     
from work.Engr2     
group by ID     
having min(Math_TRNS_2413_Best_Grade)   
order by ID;
quit;

我哪里错了?

谢谢你,布赖恩

标签: sasproc-sql

解决方案


正如@Reeza 解释的那样,最好在过程摘要中做。你很接近 sql 代码,只是错过了在有子句中提到等级 =min(grade) 。

data have;
input id  term grade $ ;
datalines;
113 2 B
113 1 A
113 3 C
111 2 B
111 1 A
111 3 C
112 1 B
112 2 A
112 3 C
;

proc sql;
create table want as 
select * from 
have
group by id
having grade = min(grade);

推荐阅读