SQL 服务器:计数(不同的(案例))

SQL Server : COUNT (DISTINCT (CASE) )

我需要计算货币的数量,如果超过两种,则需要 USD。它可以是 GBP,或其他任何东西,但如果它大于 1,则需要是 USD

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

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

您可以尝试以下方法:

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]

试试这个:

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