如下表和查询给出了所需的结果。
SELECT col1, col2, col3, @a:=@a+(col2+col3) col4
FROM test
JOIN (SELECT @a:=0)t
col1 | col2 | col3 | col4
-------------------------
a | 1 | 1 | 2
b | 2 | 0 | 4
c | 3 | 0 | 7
a | 0 | 2 | 9
但是当我使用 group by 它时,它不能正常工作。你有什么好的解决办法吗?
SELECT col1, SUM(col2)col2, SUM(col3)col3, @a:=@a+SUM(col2+col3) col4
FROM test
JOIN (SELECT @a:= 0)t
GROUP BY col1
col1 | col2 | col3 | col4
-------------------------
a | 1 | 3 | 4
b | 2 | 0 | 2 << It will be 6
c | 3 | 0 | 3 << It will be 9
第一行提取正确。但是 row2 和 row3 没有像前面的例子那样计算前一行 col4 值。我不明白问题出在哪里!