获取mysql中所有输出的单个值和总和

时间:2015-09-29 14:34:28

标签: mysql sum

SELECT value FROM table产生以下结果:

1
5
8
3

但我想获得单个值和所有输出的总和

1    17
5    17
8    17
3    17

SELECT value,SUM(value) FROM table仅生成

1    17

我怎么能以某种方式" ungroup"我的结果?

感谢您的回答......

2 个答案:

答案 0 :(得分:0)

使用子查询:

SELECT value, (SELECT SUM(value) FROM table) AS sValue
FROM table

您也可以使用CROSS JOIN

SELECT value, sValue
FROM mytable
CROSS JOIN (SELECT SUM(value) AS sValue FROM mytable) AS t

答案 1 :(得分:0)

如果您不需要每行SUM,您可以使用用户变量:

 SELECT value, @sum := @sum + value AS cumulative
   FROM table1
   JOIN (SELECT @sum := 0) init
  WHERE ...

这将为您提供累计金额,最后一行将具有正确的总和。

或者,假设这是应用程序的一部分,并且您循环遍历结果以显示它们,则可能更容易在应用程序逻辑中执行计算。