[英]How to get column name with max value across multiple columns
我有以下數據,我在 SAS 中使用 proc sql。
ID Col_1 Col_2 Col_3
1 100 110 120
我想得到
ID Max_Col
1 Col_3
這不是 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;
也許一個案例可以完成你的任務
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];
您需要使用 LARGEST 函數:
ID, LARGEST(Col_1, Col_2, Col_3)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.