Compartir a través de


row_cumsum()

Calcula la suma acumulativa de una columna en un conjunto de filas serializado.

Sintaxis

row_cumsum(term [, restart])

Obtenga más información sobre las convenciones de sintaxis.

Parámetros

Nombre Type Obligatorio Descripción
term int, long o real ✔️ Expresión que indica el valor que se va a sumar.
restart bool Indica cuándo se debe reiniciar la operación de acumulación o volver a establecerse en 0. Se puede usar para indicar particiones en los datos.

Devoluciones

La función devuelve la suma acumulativa de su argumento.

Ejemplos

En el ejemplo siguiente se muestra cómo calcular la suma acumulativa de los primeros enteros incluso.

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

En este ejemplo se muestra cómo calcular la suma acumulativa (aquí, de salary) cuando los datos se particionan (aquí, por name):

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))
nombre mes salario 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