Sql 按组计数的查询
我有类别组和种族组,我需要wright查询报告,如下所示 现在我有一个查询,可以根据客户ID和种族进行计数。然而,他也在欺骗客户表有西班牙文字段(位0为假1为真)。客户可以有任何种族,但同时他/她也可以是西班牙裔。 我现在的查询可以计算客户数量,但对于西班牙裔来说,它只是列出客户数量,而不是按种族划分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
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”有很多组合,它们必须列为一行,并带有名称,例如“再次将我的答案乘以”之类的内容-完成后,我会让您知道我的账单费率:)