Sql 在查询中选择添加具有不同子句的第二个计数列

Sql 在查询中选择添加具有不同子句的第二个计数列,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,我有一个问题,如下所示: select id_matched , count(*) s_count into STEVEN_1c from batch where match = 200 group by id_matched 现在我想在这个查询中添加第二个count列,这是一个稍微更具体的查询,它还检查另一个列,即添加一个名为“count_unique”的列,其中列“unique”=1 大概是 select id_matched , c

我有一个问题,如下所示:

select id_matched
     , count(*) s_count
  into STEVEN_1c 
  from batch 
 where match = 200 
 group by 
       id_matched 
现在我想在这个查询中添加第二个count列,这是一个稍微更具体的查询,它还检查另一个列,即添加一个名为“count_unique”的列,其中列“unique”=1

大概是

select id_matched
     , count(*) s_count
     , count(* + and unique=1) count_unique
  into STEVEN_1c 
  from batch 
 where match = 200 
 group by 
       id_matched 
只是不确定添加第二个比第一个更具体的计数列的语法是什么?

尝试以下方法:

select id_matched
     , count(*) s_count
     , sum(case when unique = 1 then 1 else 0 end) count_unique
  into STEVEN_1c 
  from batch 
 where match = 200 
 group by 
       id_matched 

您可以在count函数中写入一个case条件,如下所示:

select id_matched
, count(*) s_count
, count(case [unique] when 1 then 1 else null end) as count_unique
into STEVEN_1c 
from batch 
where match = 200 
group by 
id_matched