如何进行分组和计数场

Yas*_*rük 1 sql t-sql sql-server sum count

我需要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 
Run Code Online (Sandbox Code Playgroud)

我只想知道我有多少行是State2和3.我希望解释.

Gor*_*off 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;
Run Code Online (Sandbox Code Playgroud)