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