Tsql 只按一定条件计算

Tsql 只按一定条件计算,tsql,Tsql,我试图找出我的一个字段被选中时,只有当该站点处于活动状态时,我才能将该站点包括在计数中。但我下面的语法不正确,因为TotalSiteCount和TotalActiveSiteCount分别是40和40。TotalActiveSite计数的实际计数应该是3,因为如果我要查看该表或在我正在运行的这个查询(包括以下内容)之外对其进行单独计数,则只有3个状态为Active , COUNT(*) OVER() as [TotalSiteCount] , COUNT(CASE WHEN base.Statu

我试图找出我的一个字段被选中时,只有当该站点处于活动状态时,我才能将该站点包括在计数中。但我下面的语法不正确,因为TotalSiteCount和TotalActiveSiteCount分别是40和40。TotalActiveSite计数的实际计数应该是3,因为如果我要查看该表或在我正在运行的这个查询(包括以下内容)之外对其进行单独计数,则只有3个状态为Active

, COUNT(*) OVER() as [TotalSiteCount]
, COUNT(CASE WHEN base.Status = 'Active' THEN 1 ELSE 0 end) OVER() as [TotalActiveSitesCount]

做加法而不是数数

COUNT(*) OVER() AS [TotalSiteCount], 
SUM(CASE WHEN base.Status = 'Active' THEN 1 ELSE 0 END) OVER() 
     AS [TotalActiveSitesCount]
或者,如果使用计数,则不计算空值,请重试

COUNT(*) OVER() AS [TotalSiteCount], 
COUNT(CASE WHEN base.Status = 'Active' THEN 1 ELSE NULL END) OVER() 
     AS [TotalActiveSitesCount]