[英]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.