row_cumsum()
计算序列化行集中列的累计和。
语法
row_cumsum(
term [,
restart] )
详细了解语法约定。
参数
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
term | int、long 或 real | ✔️ | 表达式,表示要求和的值。 |
restart | bool |
表示应何时重启累计运算,或重新设置为 0。 它可用于指示数据中的分区。 |
返回
此函数返回其参数的累计和。
示例
下面的示例演示如何计算前几个偶数整数的累计和。
datatable (a:long) [
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
]
| where a%2==0
| serialize cs=row_cumsum(a)
a | cs |
---|---|
2 | 2 |
4 | 6 |
6 | 12 |
8 | 20 |
10 | 30 |
此示例演示了将数据分区(这里是指按 name
分区)时如何计算累计和(这里是指 salary
的累计和):
datatable (name:string, month:int, salary:long)
[
"Alice", 1, 1000,
"Bob", 1, 1000,
"Alice", 2, 2000,
"Bob", 2, 1950,
"Alice", 3, 1400,
"Bob", 3, 1450,
]
| order by name asc, month asc
| extend total=row_cumsum(salary, name != prev(name))
name | 月份 | salary | total |
---|---|---|---|
Alice | 1 | 1000 | 1000 |
Alice | 2 | 2000 | 3000 |
Alice | 3 | 1400 | 4400 |
Bob | 1 | 1000 | 1000 |
Bob | 2 | 1950 | 2950 |
Bob | 3 | 1450 | 4400 |