0

カテゴリのグループと民族のグループがあります。次のようなレポートのライトクエリが必要ですここに画像の説明を入力

現在、クライアント ID と民族性でカウントできるクエリがあります。ただし、クライアント テーブルにはヒスパニック系フィールド (ビット 0 false 1 true) もあります。クライアントはあらゆる民族性を持つことができますが、同時にヒスパニックである可能性もあります。私のクエリは現在クライアントをカウントできますが、ヒスパニック系の場合はカウントをリストするだけで、民族性で除算することはできません

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を表示する必要があります。これが私のクエリの結果です ここに画像の説明を入力

ご覧のとおり、ヒスパニック系はカテゴリ別に分類されていません。この問題を解決しようとするのに助けが必要です 2日目 まだ成功していません

4

1 に答える 1

2

これを試して:

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

SUM(CASE ...)は、実際のカウント内の一種の「サブカウント」として機能します。

更新

他のすべてのコードを「その他の倍数」カテゴリにまとめるには、次のようにします。

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

これは、ハードコードされたステートメントに含まれていないEthnicityのすべての民族コードが倍数であることを前提としています。

于 2013-02-25T00:10:09.457 に答える