Yii2 gridview 运行 每个 SqlDataProvider 行的总数

Yii2 gridview running total for each SqlDataProvider row

我有一个 gridview 属性 amount。我想为每一行做 运行 总计 (或小计/汇总)amount。例如:

   amount  rollup
1.   2       2
2.   3       5
3.   2       7
4.   1       8

有办法吗?你能给我指出正确的方向吗?我不知道该怎么做,我没有找到任何相关信息,抱歉。

Ziki:我的 $dataProviderSqlDataProvider 所以我不能使用 解决方案。你能帮我解决一下如何将其调整为 SqlDataProvider 吗?

我指的是 $data["amount"] 这样的值。我好像没有keyindex,可以吗?我得到:

Undefined offset: 0 (or 1 or...)

如果有SQL解决方案也行

我找到了 a simple SQL solution

sum(amount) over (order by ... rows unbounded preceding)

这里最重要的细节是:rows unbounded preceding

如果你想要这样的总和(所以slide one row below):

   amount  rollup
1.   2       
2.   3       2
3.   2       5
4.   1       7

可以用window function完成:

sum(amount) over (order by ... ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING)

感谢@Hart CO