在SQL Server中显示计数0值

时间:2016-03-21 07:19:06

标签: sql sql-server sql-server-2008 tsql sql-server-2012

TableA的数据如下:

res, err := tx.Exec(sqlStr, vals...)
if err != nil {
    // handle error
}

我希望看到记录数Col1 Col2 Col3 001 A 0 001 B 0 002 C 0 003 D 0 group byCol1 Col2 可能是如下查询:

Col3 = 1

由于没有Select Col1, Col3, Count(1) From TableA Group By Col1, Col2 Where Col3 = 1 的记录,因此不会显示任何记录,但我仍希望显示count为0的值。 例如,输出如下:

Col3 = 1

请你帮我看一下如上所示的输出。

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

首先你写错了sql语句,你不能在分组依据子句之后使用 Where 子句..你需要在group by之前使用..如果你想使用使用拥有子句后,按组过滤.. 第二,如果'Col3 = 1'没有匹配的列,那么你没有得到任何结果..因为你需要使用 case 语句或子查询。 否则不要使用group by子句而不是使用简单的sql语句。