2013-05-13 158 views
1

我需要構造滿足下列條件的查詢分組值:由X列 選擇基於條件

  • 如果column1包含負值

    • 選擇X列和MAX(列1),基團(可只在給定的組中的一個),則代替MAX(列1)顯示「復位」

    我知道可以通過分組並用非常大量的代負值,然後經過使用情況之前,使用的情況下做到這一點分組,但這是一個非常混亂的解決方案。

    有沒有人有更好的主意如何解決這個問題?

  • 回答

    3

    您還可以選擇最小值並檢查否定性。
    類似以下內容:

    select foo, case when min_value < 0 then 'reset' else to_char(max_value) end 
    from 
    (
        select foo, max(column1) as max_value, min(column1) as min_value 
        from your_table 
        group by foo 
    ) 
    

    或者,如果沒有子查詢:

    select foo, case when min(column1) < 0 then 'reset' else to_char(max(column1)) end 
    from your_table 
    group by foo 
    
    +0

    可以逃脫不在線查看,甚至。 – 2013-05-13 14:00:29

    +0

    哇,看來我的大腦不能在今天最好的...感謝您的幫助。 – kyooryu 2013-05-13 14:00:54

    +0

    @DavidAldridge:對。我更新了我的答案。 – 2013-05-13 14:01:51