当前行和前行的累加值

新手上路,请多包涵

你将如何从这个转换表中的列:

 ColumnA   ColumnB
2           a
3           b
4           c
5           d
1           a

对此:

 ColumnA          ColumnB
3                 a
6(=3+3)           b
10(=4+3+3)        c
15(=5+4+3+3)      d

我有兴趣看 esp。你会选择什么方法。

原文由 Sam 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 782
1 个回答
SELECT g.columnB as "ColumnB",
SUM(g.group_sum) over (ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as "ColumnA"
FROM (
SELECT SUM(ColumnA) as group_sum,
ColumnB
FROM cand
GROUP BY ColumnB
ORDER BY ColumnB) g

使用 ColumnA 的 SUM 聚合对 ColumnB 进行分组。然后将窗口函数应用于 ColumnA 以生成累积和。

原文由 Mayank Pant 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进