Sql 按组计数的查询

Sql 按组计数的查询,sql,sql-server,Sql,Sql Server,我有类别组和种族组,我需要wright查询报告,如下所示 现在我有一个查询,可以根据客户ID和种族进行计数。然而,他也在欺骗客户表有西班牙文字段(位0为假1为真)。客户可以有任何种族,但同时他/她也可以是西班牙裔。 我现在的查询可以计算客户数量,但对于西班牙裔来说,它只是列出客户数量,而不是按种族划分 select ethnicity, COUNT (c.EthnCode) as '(A) tottal Numbers of participamts by Rase', (select COU

我有类别组和种族组,我需要wright查询报告,如下所示

现在我有一个查询,可以根据客户ID和种族进行计数。然而,他也在欺骗客户表有西班牙文字段(位0为假1为真)。客户可以有任何种族,但同时他/她也可以是西班牙裔。 我现在的查询可以计算客户数量,但对于西班牙裔来说,它只是列出客户数量,而不是按种族划分

select ethnicity, COUNT (c.EthnCode) as '(A) tottal Numbers of participamts by Rase', 
(select COUNT (Hispanic) from clients c JOIN ethnicity e
ON c.EthnCode = e.EthnCode
where c.EthnCode in ('N','A','B','P','W','NW','AW','BW','BN') and Hispanic =1 )as '(B)Number of Hispanic or Latino Participants Reported in Column A by Race'
from  Clients c
JOIN ethnicity e
ON c.EthnCode = e.EthnCode
where c.EthnCode in ('N','A','B','P','W','NW','AW','BW','BN')
group by ethnicity
另外,如果某个种族没有特殊性,它只是没有在结果中显示,但我需要为该种族显示0。 这是我查询的结果

正如你们所看到的,西班牙裔并没有被分类。 尝试解决此问题需要帮助第二天仍然没有任何成功

尝试以下方法:

select ethnicity, COUNT (c.EthnCode) as '(A) tottal Numbers of participamts by Rase', 
sum(case when Hispanic=1 then 1 else 0 end) as '(B)Number of Hispanic or Latino Participants Reported in Column A by Race'
from  Ethnicity E
LEFT JOIN Clients C
ON c.EthnCode = e.EthnCode
where e.EthnCode in ('N','A','B','P','W','NW','AW','BW','BN')
group by ethnicity
总和(大小写…)作为实际计数中的一种“子计数”

更新

要将所有其他代码归入“其他倍数”类别,请执行以下操作:

select 
    case 
    when e.EthnCode in ('N','A','B','P','W','NW','AW','BW','BN') then ethnicity
    else 'Other Multiples' 
    end as ethnicity, 
    COUNT (c.EthnCode) as '(A) tottal Numbers of participamts by Rase', 
    sum(case when Hispanic=1 then 1 else 0 end) as '(B)Number of Hispanic or Latino Participants Reported in Column A by Race'
from  Ethnicity E
LEFT JOIN Clients C
ON c.EthnCode = e.EthnCode
group by case 
    when e.EthnCode in ('N','A','B','P','W','NW','AW','BW','BN') then ethnicity
    else 'Other Multiples' 
    end

这假设您的硬编码声明中未包含的所有种族代码都是倍数。

我不完全确定您的问题——您期望的输出是什么?在第3列中,现在显示17,这是DB中所有西班牙裔身份1的客户的计数,应该显示他们按种族划分,如报告中所示例如Thanx!但是对于那些没有任何活跃客户的种族,比如我的案例中的AW,是亚裔白人。根据业务规则,即使这些行中的值为0,这些行也必须在报告中。我为此更新了答案。简单的回答是你必须留给客户。因此,即使没有客户,种族仍然会返回,其计数和总和都是0。太棒了!!也许你还可以帮助我处理原始报告中的第14行,该行还必须按类别和种族统计所有客户,但仅限于那些不是“N”、“A”、“B”、“P”、“W”、“NW”、“AW”、“BW”的种族,“BN”有很多组合,它们必须列为一行,并带有名称,例如“再次将我的答案乘以”之类的内容-完成后,我会让您知道我的账单费率:)