将3列更改为1并在SQL Server中计算其客户数

时间:2018-02-13 19:46:18

标签: sql sql-server tsql

我有以下内容,我只需要翻到“中文”并统计所有这三种中文语言:

enter image description here

所以我想要的输出是如下一行:

中文为PrimaryLanguage,900为总计数。列表的其余部分包含许多其他语言,我不需要滚动。

提前致谢。

3 个答案:

答案 0 :(得分:1)

您可以使用case

select (case when language in ('Chinese', 'Chinese-Cantonese', 'Chinese-Mandarin')
             then 'Chinese' else language
        end) as language,
       count(*)
from t
group by  (case when language in ('Chinese', 'Chinese-Cantonese', 'Chinese-Mandarin')
                then 'Chinese' else language
           end)

如果您想要所有中文语言,可以将条件更改为language like 'Chinese%'

答案 1 :(得分:1)

您可以尝试这个简单的查询:

select 'Chinese' as PrimaryLanguage, #Count from (
    select count(*) as #Count from table1
    where language in ('Chinese', 'Chinese-Cantonese', 'Chinese-Mandarin')
) as T

答案 2 :(得分:0)

试试这个:

select 'Chinese', sum([#Count]) from MY_TABLE where primaryLanguage like '%Chinese%'