2016-03-21 67 views
-2

TableA的具有数据如下:显示计数在SQL Server中0值

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

我想看到的记录group byCol1Col2其中Col3 = 1 可能是查询计数如下:

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

接受... :)谢谢... –

0

首先你写错的SQL语句,你不能使用条款后集团通过条款..你需要按组前使用..如果你想使用组后过滤使用子句.. 秒如果没有匹配列'Col3 = 1',那么你没有得到任何结果..因此,你需要使用案例语句或子查询。 否则不要使用group by子句而不要使用简单的sql语句。