[英]SQL: How to select COLUMN with max value in Redshift?
如何在 Redshift 表中提取一行的最大列? 例如,我的行之一是:value1、value2、value3、value4、value5 100、56、516、1000、516
我想看到 value4: 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
领带在这里是一个边缘情况; 您没有在该事件中指定您想要的逻辑,因此:上面的查询获取第一个顶部联系列,如case
表达式中分支的顺序所定义的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.