只按一定的条件计算

时间:2011-08-19 06:05:20

标签: tsql

我正在试图弄清楚我的某个字段是如何被选中的,只有在网站处于活动状态时才能将网站包含在计数中。但我的下面的语法不正确,因为我的TotalSiteCount为40,TotalActiveSiteCount为40。对于TotalActiveSite计数,实际计数应为3,因为如果我要查看表格或在此查询之外单独对其进行单独计数,我们只有3个状态为Active,包括以下内容。 / p>

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

1 个答案:

答案 0 :(得分:3)

执行SUM而不是COUNT

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

或者,如果使用计数,则不计算NULL,因此请尝试

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