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"我的结果?
感谢您的回答......
答案 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 ...
这将为您提供累计金额,最后一行将具有正确的总和。
或者,假设这是应用程序的一部分,并且您循环遍历结果以显示它们,则可能更容易在应用程序逻辑中执行计算。