sql - 如何对每个项目的所有行求和?

标签 sql oracle

关于我之前的问题How to use the result of previous row in oracle?

我需要计算每件商品的值(value)总和。

Col | Col A | Col B
Item1  1     |   1     (col A)
Item1  2     |   3     (colA + prevColB)
Item1  3     |   6     (colA + prevColB)
Item2  1     |   1     (colA)
Item2  4     |   5     (colA + prevColB)
Item2  3     |   8     (colA + prevColB)

最佳答案

SQL 表表示无序集。您的累计总和假定表格的顺序,这在问题中并不明显。

累积和的语法是:

select t.*
       sum(cola) over (partition by col order by ?) as colb
from t;

? 用于表示行顺序的列(或表达式)。

关于sql - 如何对每个项目的所有行求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51624494/

相关文章:

php - 显然更新查询没有错误,但记录没有更新

sql - 触发以捕获服务器中的架构更改

javascript - 为什么我的 node-oracledb execute Promise 解决所需的时间稳步增加?

.net - 使用 oracle (.Net Connector) 描述查询

sql - 选择行直到满足条件

mysql - 按组计算时间差

sql - 如何在 SQL Server 中使用 JOIN 执行 UPDATE 语句?

python - Google BigQuery 从 Python 脚本执行 SQL 文件

sql - OR 条件使查询执行速度变慢

sql - ANSI 和非 ANSI 连接有什么区别,您推荐哪种?