Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何对分组字段和计数字段求和_Sql_Sql Server_Tsql_Count_Sum - Fatal编程技术网

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

Sql 如何对分组字段和计数字段求和,sql,sql-server,tsql,count,sum,Sql,Sql Server,Tsql,Count,Sum,我需要对已计数的和分组列的求和。顺便说一句,我需要Where子句以了解具体情况 这是我复杂的疑问 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

我需要对
已计数的
分组列的
求和
。顺便说一句,我需要
Where子句
以了解具体情况

这是我复杂的疑问

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;

我想你可以用条件聚合做你想做的事情。大概是这样的:

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;

请使用示例数据和所需结果编辑您的问题。您的数据库是什么?@MaciejLos我在使用SQL Server请使用示例数据和所需结果编辑您的问题。您的数据库是什么?@MaciejLos我在使用SQL Server