Mysql 求和问题

Mysql 求和问题,mysql,sql,aggregate-functions,Mysql,Sql,Aggregate Functions,是否可以使用一个查询获得一列和所有列本身的总和? 我的意思是,我需要SUM(Result.num)和individual Result.num,但我不想为此使用两个单独的查询?理想结果可能是结果中另一列的总和。 结果可能如下所示: 可乐 Result.num1,和 Result.num2,总和 Result.num3,总和 答案是,您将执行两个语句,但可以在一个结果集中返回结果。您可以使用UNION ALL语句来实现这一点。只需在两个查询之间放置一个UNION-ALL语句。它将如下所示: S

是否可以使用一个查询获得一列和所有列本身的总和? 我的意思是,我需要SUM(Result.num)和individual Result.num,但我不想为此使用两个单独的查询?理想结果可能是结果中另一列的总和。 结果可能如下所示: 可乐 Result.num1,和 Result.num2,总和 Result.num3,总和


答案是,您将执行两个语句,但可以在一个结果集中返回结果。您可以使用UNION ALL语句来实现这一点。只需在两个查询之间放置一个
UNION-ALL
语句。它将如下所示:

 SELECT Result.num 
   FROM (SELECT COUNT(colA) AS num 
           FROM Table1 
       GROUP BY colB) AS Result;
 UNION ALL
 SELECT SUM(Result.num) 
   FROM (SELECT COUNT(colA) AS num 
           FROM Table1 
       GROUP BY colB) AS Result;

我改变了顺序,这样你的求和值就在末尾,但如果你愿意,你可以把它放在开头。

答案是,你可以做两个语句,但你可以在一个结果集中返回结果。您可以使用UNION ALL语句来实现这一点。只需在两个查询之间放置一个
UNION-ALL
语句。它将如下所示:

 SELECT Result.num 
   FROM (SELECT COUNT(colA) AS num 
           FROM Table1 
       GROUP BY colB) AS Result;
 UNION ALL
 SELECT SUM(Result.num) 
   FROM (SELECT COUNT(colA) AS num 
           FROM Table1 
       GROUP BY colB) AS Result;

我改变了顺序,这样你的求和值就可以放在末尾,但如果你愿意,你可以把它放在开头。

非常确定,你只需要
联合你的查询

 SELECT SUM(Result.num) FROM (SELECT COUNT(colA) AS num FROM Table1 group by colB) AS Result
union all
 SELECT Result.num FROM (SELECT COUNT(colA) AS num FROM Table1 group by colB) AS Result;

非常确定您只需要
union
您的查询

 SELECT SUM(Result.num) FROM (SELECT COUNT(colA) AS num FROM Table1 group by colB) AS Result
union all
 SELECT Result.num FROM (SELECT COUNT(colA) AS num FROM Table1 group by colB) AS Result;

这里的
WITH ROLLUP
子句可能对您有用


这里的
WITH ROLLUP
子句可能对您有用


为什么不使用两个查询?您希望结果如何表示?为什么不使用两个查询?您希望如何表示您的结果?mysql会执行两次子查询以获得结果集吗?子查询将针对联合的每一方执行一次,因此…是mysql会执行两次子查询以获得结果集吗?子查询将针对联合的每一方执行一次,因此…是