获取mysql中所有输出的单个值和总和
获取mysql中所有输出的单个值和总和,mysql,sum,Mysql,Sum,从表中选择值产生以下结果: 1 5 8 3 但是我想得到单个值和所有输出的总和 1 17 5 17 8 17 3 17 选择值,从表中求和(值)仅生成 1 17 我如何才能以某种方式“解组”我的结果 感谢您的回答….使用子查询: SELECT value, (SELECT SUM(value) FROM table) AS sValue FROM table 您也可以使用交叉连接: SELECT value, sValue FROM mytable CROS
从表中选择值
产生以下结果:
1
5
8
3
但是我想得到单个值和所有输出的总和
1 17
5 17
8 17
3 17
选择值,从表中求和(值)
仅生成
1 17
我如何才能以某种方式“解组”我的结果
感谢您的回答….使用子查询:
SELECT value, (SELECT SUM(value) FROM table) AS sValue
FROM table
您也可以使用交叉连接
:
SELECT value, sValue
FROM mytable
CROSS JOIN (SELECT SUM(value) AS sValue FROM mytable) AS t
如果您不需要每行的
总和
,则可以使用用户变量:
SELECT value, @sum := @sum + value AS cumulative
FROM table1
JOIN (SELECT @sum := 0) init
WHERE ...
这将为您提供一个累计总数,最后一行将具有正确的总数
或者,假设这是应用程序的一部分,并且您正在循环结果以显示它们,则在应用程序逻辑中执行计算可能会更容易。使用示例数据发布表结构这是唯一的方法吗?因为我有很多WHERE术语,我必须在子查询中再次使用相同的术语。@SvenRichter据我所知,MySQL不支持CTEs,因此我没有其他方法,只能重复
WHERE
子句中的所有谓词。使用交叉联接
与前面的方法大致相同。