SQL:如何在Redshift中选择最大值的COLUMN



如何提取Redshift表中一行的最大列数?例如,我的一行是:值1,值2,值3,值4,值5100、56、516、1000、516

我希望看到值4:1000作为结果?

感谢

在Redshift中,您可以使用greatest():

select t.*, greatest(value1, value2, value3, value4) as greatest_value
from mytable t

注意,greatest()(以及least()(忽略null值;另一方面,如果所有值都是null,则结果是null

如果要确定最大值来自哪一列,请使用case表达式:

select t.*, greatest(value1, value2, value3, value4) as greatest_value,
case greatest(value1, value2, value3, value4)
when value1 then 'value1'
when value2 then 'value2'
when value3 then 'value3'
when value4 then 'value4'
end as greatest_column
from mytable t

领带在这里是一个边缘案例;您没有指定要在该事件中使用哪个逻辑,因此:上面的查询获取第一个top-tie列,该列由case表达式中的分支顺序定义。

最新更新