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列转行
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列转行