SQL:如何在红移中选择最大值的列?
如何在红移表中提取行的最大列? e、 g.我的一行是: 值1、值2、值3、值4、值5 100565161000516 我希望看到结果是4:1000 感谢使用红移,您可以使用: 请注意,SQL:如何在红移中选择最大值的列?,sql,case,amazon-redshift,Sql,Case,Amazon Redshift,如何在红移表中提取行的最大列? e、 g.我的一行是: 值1、值2、值3、值4、值5 100565161000516 我希望看到结果是4:1000 感谢使用红移,您可以使用: 请注意,magest()(以及least())忽略null值;另一方面,如果所有值都是null,则结果是null 如果要确定最大值来自哪个列,请使用case表达式: select t.*, greatest(value1, value2, value3, value4) as greatest_value, cas
magest()
(以及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
表达式中分支的顺序定义。在红移中,您可以使用:
请注意,magest()
(以及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
表达式中分支的顺序定义