我正在尝试弄清楚如何选择我的一个字段,仅当该网站处于事件状态时才能将该网站包含在计数中。但我下面的语法不正确,因为我得到的 TotalSiteCount 为 40,TotalActiveSiteCount 为 40。 TotalActiveSite 计数的实际计数应为 3,因为如果我要查看该表或在我在这里运行的查询之外对其进行单独计数(包括以下内容),我们只有 3 个状态为“事件”的站点。
, COUNT(*) OVER() as [TotalSiteCount]
, COUNT(CASE WHEN base.Status = 'Active' THEN 1 ELSE 0 end) OVER() as [TotalActiveSitesCount]
最佳答案
进行 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]
关于t-sql - 仅按特定条件计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7117570/