如何对分组和计数的字段求和

How to SUM Grouped and Counted Field

我需要 CountedGrouped columns 中的 Sum。顺便说一下,我需要 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。我希望得到解释。

我认为您可以使用条件聚合来做您想做的事。像这样:

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;