1. 程式人生 > >【Hive】多列最大值 或 陣列最大值

【Hive】多列最大值 或 陣列最大值

 max()函式是針對單列多行求最大值。當我們想要對多列同行之間進行比較時,可以嘗試以下辦法:

1.先將數值轉換成陣列array(),再對陣列排序sort_array(),通過負值使其為降序;

select -sort_array(array(-a,-b,-c))[0] as max_value
from (
    select 1 as a, 3 as b, 2 as c
) as data

2.case when:對於列數>2而言,有些囉嗦;

3.union all列轉行