CumSum
CumSum
calculates a cumulative sum in an updateBy
table operation.
Syntax
CumSum(pairs...)
Parameters
Parameter | Type | Description |
---|---|---|
pairs | String... | The column(s) to be operated on. These can include expressions to rename output columns (e.g., |
Returns
An UpdateByOperation
to be used in an updateBy
table operation.
Examples
The following example performs an updateBy
on the source
table using the CumSum
operation. No grouping columns are given, so the cumulative sum is calculated for all rows in the table.
source = emptyTable(10).update("Letter = (i % 2 == 0) ? `A` : `B`", "X = i")
result = source.updateBy(CumSum("SumX = X"))
- source
- result
The following example builds off the previous by specifying Letter
as the grouping column. Thus, the cumulative sum of X
is calculated for each unique letter.
source = emptyTable(10).update("Letter = (i % 2 == 0) ? `A` : `B`", "X = i")
result = source.updateBy(CumSum("SumX = X"), "Letter")
- source
- result
The following example builds off the previous by calculating the cumulative sum of two columns using the same UpdateByOperation
.
source = emptyTable(10).update("Letter = (i % 2 == 0) ? `A` : `B`", "X = i", "Y = randomInt(1, 11)")
result = source.updateBy(CumSum("SumX = X", "SumY = Y"), "Letter")
- source
- result
The following example builds off the previous by specifying two grouping columns: Letter
and Truth
. Thus, each group is a unique combination of letter and boolean value in those two columns, respectively.
source = emptyTable(10).update("Letter = (i % 2 == 0) ? `A` : `B`", "Truth = randomBool()", "X = i", "Y = randomInt(1, 11)")
result = source.updateBy(CumSum("SumX = X", "SumY = Y"), "Letter", "Truth")
- source
- result