有条件的累计和
Cumulative sum with condition
我希望根据最初将每日金额添加到 Value
,然后将每日金额添加到结果数字来导出累积列。
能不能帮帮忙,谢谢
Date
Type
Value
Rate
Cummulative
29/04/2022
A
128.61
32.00
256.61
28/04/2022
A
128.61
32.00
224.61
27/04/2022
A
128.61
32.00
192.61
26/04/2022
A
128.61
32.00
160.61
看看下面的示例脚本。重新加载后,CumulativeData
table 将包含新列 Cumulative
,这将是结果。
“魔法”正在以下表达式中发生:
if(RecNo() = 1,
Value + Rate,
peek(Cumulative) + Rate
) as Cumulative
在我们所说的表达式中:
- 如果记录编号为 1(table 的第一行),则对
Value
和 Rate
值求和。这是我们的“底数”,我们会累积到这个值
- 对于下一行获取
Cumulative
列 (peek(Cumulative)
) 的上述(上一行)值并添加当前行 Rate
值
有关 peek
功能的更多信息,请访问 documentation page
示例脚本:
RawData:
Load * Inline [
Date , Type, Value , Rate
29/04/2022, A , 128.61, 32.00
28/04/2022, A , 128.61, 32.00
27/04/2022, A , 128.61, 32.00
26/04/2022, A , 128.61, 32.00
];
// Dont foget to order the table in ascending order
CumulativeData:
Load
*,
if(RecNo() = 1,
Value + Rate,
peek(Cumulative) + Rate
) as Cumulative
Resident
RawData
Order By
Date ASC
;
Drop Table RawData;
结果table:
我希望根据最初将每日金额添加到 Value
,然后将每日金额添加到结果数字来导出累积列。
能不能帮帮忙,谢谢
Date | Type | Value | Rate | Cummulative |
---|---|---|---|---|
29/04/2022 | A | 128.61 | 32.00 | 256.61 |
28/04/2022 | A | 128.61 | 32.00 | 224.61 |
27/04/2022 | A | 128.61 | 32.00 | 192.61 |
26/04/2022 | A | 128.61 | 32.00 | 160.61 |
看看下面的示例脚本。重新加载后,CumulativeData
table 将包含新列 Cumulative
,这将是结果。
“魔法”正在以下表达式中发生:
if(RecNo() = 1,
Value + Rate,
peek(Cumulative) + Rate
) as Cumulative
在我们所说的表达式中:
- 如果记录编号为 1(table 的第一行),则对
Value
和Rate
值求和。这是我们的“底数”,我们会累积到这个值 - 对于下一行获取
Cumulative
列 (peek(Cumulative)
) 的上述(上一行)值并添加当前行Rate
值
有关 peek
功能的更多信息,请访问 documentation page
示例脚本:
RawData:
Load * Inline [
Date , Type, Value , Rate
29/04/2022, A , 128.61, 32.00
28/04/2022, A , 128.61, 32.00
27/04/2022, A , 128.61, 32.00
26/04/2022, A , 128.61, 32.00
];
// Dont foget to order the table in ascending order
CumulativeData:
Load
*,
if(RecNo() = 1,
Value + Rate,
peek(Cumulative) + Rate
) as Cumulative
Resident
RawData
Order By
Date ASC
;
Drop Table RawData;
结果table: