mysql - 如何使用 SUM 和 GROUP BY 对行和所有行求和?

标签 mysql sql

如何使用GROUP BY获取行的总和,并且在不使用WITH ROLLUP的情况下形成所有行

我得到的错误是“字段列表”中的未知列“x”

示例

SELECT SUM(orderValue) as x GROUP BY day;

但这只会给我每天的 orderValue,但我想对所有订单进行求和,就好像我没有使用 GROUP BY 一样。我知道我可以使用 ROLLUP,但我需要在 SELECT 中使用它。

示例:

SELECT SUM(orderValue) as x, SUM(x) as total GROUP BY day;

ID  orderValue  day
--  ----------  ---
1   400         2015-01-01
2   800         2015-01-01
3   300         2015-01-01
4   400         2015-01-01
5   600         2015-01-01
6   500         2015-01-01
7   400         2015-01-02
8   800         2015-01-02
9   300         2015-01-02
10  400         2015-01-02
11  600         2015-01-02
12  500         2015-01-02

x       total
3000    6000
3000    6000

最佳答案

您可以通过使用带有子查询的交叉连接来获取同一个表的总和

SELECT SUM(orderValue) as x, 
t.total 
FROM table
CROSS JOIN (SELECT SUM(orderValue) total FROM table ) t
GROUP BY day;

DEMO

关于mysql - 如何使用 SUM 和 GROUP BY 对行和所有行求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30869941/

相关文章:

mysql - 使用 JDBC 连接器读取 Spark 中 MySQL 表的一部分

php - 检查mysql表是否存在记录

sql - 我想使用 SQL Server 计算列内的百分比变化

mysql - 如何将特定的 SELECT 命令与 UPDATE - SQL 结合起来

php - 我正在尝试更新一个表并从不同的表中调用另一行

mysql - 海量下载【ETH】智能合约

mysql - 如何分离一个巨大的表并运行循环来选择行并导入到新表中?

java - JDBC 何时自动提交提交

sql - 有没有办法对当前行上方的行求和

MySQL-错误号 150 : "Foreign key constraint is incorrectly formed"