2016-03-21 2 views
-2

TableAのは、データを持っている:表示回数、次のようにSQL Serverでの0の値は

Col1 Col2 Col3 
001  A  0 
001  B  0 
002  C  0 
003  D  0 

私は、レコードgroup byCol1と、次のようにCol3 = 1 がクエリかもしれませCol2の数を見てみたい:

Select Col1, Col3, Count(1) 
From TableA 
Group By Col1, Col2 
Where Col3 = 1 

Col3 = 1のレコードが存在しないため、レコードは表示されませんが、カウントを0にして値を表示する必要があります。 たとえば、o出力は次のようになります。

Col1 Col2 CountOfRecords 
001  A  0 
001  B  0 
002  C  0 
003  D  0 

上記のように出力を得ることができますか。

答えて

3

一つのアプローチは、条件付きの集約を使用することです:

Select Col1, Col2, Count(case when Col3 = 1 then 1 end) as CountOfRecords 
From TableA 
Group By Col1, Col2 
+0

ありがとうございます...それは動作します... –

+2

@VenkateswarluAvula、あなたがそれがあなたにとって有用だと思ったらこの回答を受け入れてください。 :-) –

+0

Accepted ... :)ありがとう... –

0

まず、あなたが句によってグループの後どこ句を使用することはできません、間違ったSQL文を書く..あなたがして、グループの前に使用する必要があります..使用してグループの後にフィルターを使用する場合句を持つ。 'Col3 = 1'に一致する列がない場合は、何も結果が得られません。使用するためにケースステートメントまたはサブクエリです。 それ以外の場合は、単純なSQL文を使用するのではなく、group by節を使用しないでください。

関連する問題