簡體   English   中英

SQL:如何在 Redshift 中選擇具有最大值的列?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM