如何提取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
表达式中的分支顺序定义。