2011-08-19 55 views
2

我想弄清楚我的一個字段被選中,只有當該網站處於活動狀態時,我如何才能將該網站包含在計數中。但是我的下面的語法是不正確的,因爲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] 

回答

3

做的,而不是COUNT

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]