sql - 在 2 行之间计算
问题描述
想知道是否有人可以提供帮助?我有一个问题,我需要计算第 1 行和第 2 行之间的差异,然后将其输入另一列
我需要获取列中的值,然后针对第 3 行进行计算,然后将该值输入到新列的另一行中。
然后将该值用于计算第 4 行,依此类推
不确定是否可以这样做任何帮助将不胜感激
尝试过领先/落后,密集等级
下表是其原始数据
Col1 Col2 Col3 Amt Date
10000 142211 1 -64.05 2005-07-19
10000 142211 2 64.05 2005-07-01
10000 142211 3 -74.91 2005-08-17
10000 142211 4 74.91 2005-08-01
10000 142211 5 -74.91 2005-09-19
10000 142211 6 74.91 2005-09-01
10000 142211 7 0.00 2005-01-01
10000 142211 8 74.91 2005-10-01
10000 142211 9 -74.91 2005-10-19
10000 142211 10 74.91 2005-11-01
1 和 2 之间的差异将进入新列
解决方案
您正在描述听起来像累积函数的东西。但是,我认为差异没有用。我认为累积总和很有用。. . 并且您对数据中的负值感到困惑。
所以,这可能是你真正想要的:
select t.*,
sum(amount) over (partition by col1, col2 order by col3) as running_amount
from t;
推荐阅读
- sparql - 从本地 wikibase 生成 wikibase 本体端点
- javascript - 带有对象的数组上的 .forEach 不会运行
- r - R:计算单独样品的测量时间点
- java - 将应用程序置于后台时如何自动暂停视频
- python - 使用共享密钥授权向 Azure 存储 PUT 请求
- php - Cronjob 不接受 PHP 包括
- laravel - Laravel 无法读取文件存储
- android - 带有动态启动画面的 Xamarin 表单
- python - Matplotlib 和 :RuntimeError: 主线程不在主循环中:
- mysql - 关于对象关系映射器(ORM)做关系数据库(join)工作的问题