Beschreibung
Ab und zu muss eine rollierdne Summe ausgegeben werden, was ist das nun genau?
Eine rollierende Summe ist eine Summe die alles zusammen zählt das oben an der aktuellen Zeile ist.
So viel zur Theorie, praktisch wird immer nur eine Zeile oben an mit der aktuellen Zeile summiert.
Damit das klappt, nehmen wir die Rollendesummenspalte und die Aktuelle Summe und summieren das zusammen.
Falls die die Summe noch nach Werten Gruppiert summiert werden soll, das wird es etwas komplexer aber geht auch.
Siehe Beispiels 2 . Dort werden Summen beider Art gebildet, zum einen Aufsummierne(rolling SUM) zum anderen Aufsummieren mit einer Bedingung (grouped rolling Sum).
Beispiel 1
// Rollende Summe über Tabelle
TableName:
LOAD
F1,
F2,
RangeSum(F2, Peek('CumSum')) AS CumSum
;
LOAD * INLINE [
F1, F2
a, 100
b, 200
c, 300
d, 400
];
Beispiel 2
// Rollende Summe gesplitted nach Spalte F12
Data:
LOAD * INLINE [
F12, F22, F32
a, 1,100
a, 2,200
b, 1,3000
b, 2,4000
c, 1,40000
c, 2,40000
];
Result:
NoConcatenate
LOAD
F12,
F22,
F32,
RangeSum(F32, Peek('CumAll')) as CumAll,
If(F12 <> previous(F12), F32, RangeSum(F32, Peek('CumF_test'))) as CumF_test
RESIDENT Data;
DROP TABLE Data;
