簡體   English   中英

如何在多列中獲取具有最大值的列名

[英]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,那么您可以組合使用VNAMEMAXWHICHN函數。 如果您有最大值的重復項,您希望發生什么?

 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM