2015-02-23 44 views
1

我需要SumCountedGrouped columns。順便說一下,我需要Where Clause具體條件。如何合併分組和計數字段

這是我的複雜查詢;

SELECT COUNT(id) AS Counted, State FROM Table1 
GROUP BY State 
HAVING State NOT IN (2,3) 

UNION ALL 

SELECT SUM(Say) AS SubSUM, State FROM (
    SELECT COUNT(b.id) AS SubCount, b.State FROM Table1 AS b 
    GROUP BY b.State 
    HAVING b.State IN (2,3) 
) S GROUP BY S.State 

我只想知道我有多少行是State 2和3.我希望解釋。

+0

請編輯您的問題與樣本數據和預期的結果。 – 2015-02-23 12:37:16

+0

什麼是您的數據庫? – 2015-02-23 12:42:12

+0

@MaciejLos我正在使用SQL Server – 2015-02-23 12:44:04

回答

7

我認爲你可以做你想要的條件聚合。像這樣:

SELECT COUNT(id) AS total, 
     SUM(CASE WHEN State NOT IN (2, 3) THEN 1 ELSE 0 END), 
     SUM(CASE WHEN State IN (2, 3) THEN 1 ELSE 0 END) 
FROM Table1;