我有以下数据,我在SAS中使用proc sql。
ID Col_1 Col_2 Col_3
1 100 110 120
我想要
ID Max_Col
1 Col_3
答案 0 :(得分:1)
也许一个案例会完成你的任务
select ID, case when Col_1 >= Col_2 then 'Col_1'
when Col_2 <= Col_3 then 'Col_3'
else 'Col_2'
end as MAX_Col
from [TABLENAME];
答案 1 :(得分:1)
这不是SQL解决方案,因为问题更适合SAS数据步骤。 VNAME()
在SAS SQL中也不起作用。
假设您使用的是SAS,则可以使用VNAME
,MAX
和WHICHN
函数的组合。如果你有重复的最大值,你会想要发生什么?
data want;
set have;
array col(3) col_1-col_3;
index_of_max=whichn(max(of col(*)), of col(*));
variable_name=vname(col(index_of_max));
run;
答案 2 :(得分:0)
您需要使用LARGEST功能:
ID, LARGEST(Col_1, Col_2, Col_3)