SQL Server:COUNT(DISTINCT(CASE))

时间:2015-05-05 10:30:49

标签: sql sql-server count case distinct

我需要计算货币数量,如果有两个以上,则需要USD。它可以是GBP或其他任何内容,但如果它超过1则需要USD

好吧,我的查询应该是这样的,但它没有用:

SELECT 
    name,
    COUNT(DISTINCT (case ft.currency_name > 1 then 'USD' end)) as  Currency_Name
FROM 
   fundtable ft

2 个答案:

答案 0 :(得分:2)

您可以尝试以下操作:

select case when count(distinct ft.[currency_name]) > 1 then 'USD'
            else ft.[currency_name]
        end as [Currency_Name]
from [fundtable] ft
group by ft.[currency_name]

答案 1 :(得分:1)

试试这个:

SELECT 
    ft.Currency_Name,
    (CASE 
        WHEN COUNT(DISTINCT ft.Currency_Name)> 1 THEN 'USD' 
        ELSE ft.Currency_Name END) Currency_Name
FROM 
    fundtable ft
GROUP BY 
    ft.Currency_Name
相关问题