【发布时间】:2022-07-08 02:28:35
【问题描述】:
我有以下情况。在第 o1 天,我有余额,并且每天都在减去交易。我需要在一天的开始和结束时计算余额。我正在尝试使用滞后功能。
遵循sql中的逻辑,记住它做一个循环遍历整个月,总是取前一个ia和当前天
if month('day')=1 then
do;
begin_day = saldo + trans - vl_dis
+ vl_car + vl_ret;
end_day = saldo ;
end;
IF month('day')>1 then
do;
begin_day = end_day;
end_day = begin_day - trans
+ vl_dis - vl_car - vl_ret;
end;
预期输出:
+--------+--------+------+------+------+------+---------+--------+----------+
| key | saldo| trans|vl_dis|vl_car|vl_ret|begin_day| end_day| day|
+--------+--------+------+------+------+------+---------+--------+----------+
|123 | 100.0| 1.0| 2.0| 0.0| 0.0| 99.0| 100.0|2022-02-01|
|123 | 0.0| 1.0| 0.0| 0.0| 0.0| 100.0| 99.0|2022-02-02|
|123 | 0.0| 1.0| 0.0| 0.0| 0.0| 99.0| 98.0|2022-02-03|
|123 | 0.0| 1.0| 0.0| 0.0| 0.0| 98.0| 97.0|2022-02-04|
|123 | 0.0| 1.0| 2.0| 0.0| 0.0| 97.0| 98.0|2022-02-05|
|123 | 0.0| 1.0| 0.0| 0.0| 0.0| 98.0| 97.0|2022-02-06|
|123 | 0.0| 1.0| 0.0| 0.0| 0.0| 97.0| 96.0|2022-02-07|
|123 | 0.0| 1.0| 2.0| 0.0| 0.0| 96.0| 97.0|2022-02-08|
|123 | 0.0| 1.0| 0.0| 0.0| 0.0| 97.0| 96.0|2022-02-09|
+--------+--------+------+------+------+------+---------+--------+----------+
【问题讨论】:
标签: python pyspark apache-spark-sql