Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL Server中显示计数0值_Sql_Sql Server_Sql Server 2008_Tsql_Sql Server 2012 - Fatal编程技术网

在SQL Server中显示计数0值

在SQL Server中显示计数0值,sql,sql-server,sql-server-2008,tsql,sql-server-2012,Sql,Sql Server,Sql Server 2008,Tsql,Sql Server 2012,表A的数据如下: Col1 Col2 Col3 001 A 0 001 B 0 002 C 0 003 D 0 Select Col1, Col3, Count(1) From TableA Group By Col1, Col2 Where Col3 = 1 Col1 Col2 CountOfRecords 001 A 0 001 B 0 002

表A的数据如下:

Col1    Col2    Col3
001     A       0
001     B       0
002     C       0
003     D       0
Select Col1, Col3, Count(1)
From TableA
Group By Col1, Col2
Where Col3 = 1
Col1    Col2    CountOfRecords
001     A       0
001     B       0
002     C       0
003     D       0
我想查看按
Col1
Col2
分组的记录计数,其中
Col3=1
可能的查询如下:

Col1    Col2    Col3
001     A       0
001     B       0
002     C       0
003     D       0
Select Col1, Col3, Count(1)
From TableA
Group By Col1, Col2
Where Col3 = 1
Col1    Col2    CountOfRecords
001     A       0
001     B       0
002     C       0
003     D       0
由于没有
Col3=1的记录,因此不会显示任何记录,但我仍然希望显示计数为0的值。
例如,输出如下所示:

Col1    Col2    Col3
001     A       0
001     B       0
002     C       0
003     D       0
Select Col1, Col3, Count(1)
From TableA
Group By Col1, Col2
Where Col3 = 1
Col1    Col2    CountOfRecords
001     A       0
001     B       0
002     C       0
003     D       0

您能否帮助我获得如上所示的输出。

一种方法是使用条件聚合:

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

首先,您编写了错误的sql语句,不能在Group by子句之后使用Where子句。。您需要在分组之前使用。。如果要在分组后使用筛选器,请使用Having子句。。 第二,如果“Col3=1”没有匹配列,则没有得到任何结果。。为此,您需要使用case语句或子查询。
否则,不要使用GROUPBY子句,而不要使用简单的sql语句

@venkateswaruavula,如果你觉得这个答案对你有用,请接受它。:-)