2017-06-29 4 views
1

Ich brauche Hilfe bei der Beschaffung von gleitenden Durchschnittswerte nach bestimmten Spalte gruppiert. Der standardmäßige Moving Avg-Wert berechnet basierend auf dem Intervall und der Nicht-Gruppe nach einer anderen Spalte. Daher habe ich versucht, etwas wie folgt zu verwenden:Spotfire: Moving avg Berechnung für einzelne Spalte, gruppiert nach verschiedenen Werten einer anderen Spalte

Avg (Spalte C) über (LastPeriods (6, Spalte B)), dies ergibt kontinuierliche avg, aber nicht in der anderen Spalte gruppiert. Ich muss avg separat für verschiedene Werte verschieben, die nach einer bestimmten Spalte gruppiert sind.

Ich habe versucht etwas (Avg (Spalte C) über (LastPeriods (6, Spalte B), Spalte A)). Aber das ist nicht korrekt.

Jede Hilfe wird geschätzt.

Unten sind die Beispieldaten. enter image description here

Ich brauche bewegen Spalte Avg Gruppierung A, dh für 170.319 der bewegliche avg separat berechnet werden soll und für 170.318 separat und 170.320 etc ...... restliche Spalten wie Spalte D und E werden einige Werte haben, die nicht ist erforderlich

+0

@ NischeyAnand- Könnten Sie einige Beispieldaten veröffentlichen? – ksp585

+0

@ ksp585 Ich habe die Beispieldaten hinzugefügt –

+0

@ NischeyAnand- Was haben Sie versucht, mit diesem Ausdruck (LastPeriods (6, Spalte B) zu berechnen? Was ist der Zeitraum, den Sie suchen? – ksp585

Antwort

2

Ihre Frage klären nicht auf, wenn Sie die letzten 6 Tage möchten, 6 Reihen, oder was auch immer hier aber sind einige Optionen:

Durchschnitt, auf der Zeit sortiert, nach Spalte gruppiert A

Avg([Column B]) over (Intersect([Column A],AllPrevious([Column B]))) 

Gleitender Durchschnitt über die letzten 6 Zeilen (basierend auf Spalte B aufsteigend)

Einfügen berechnete Spalte und der Name es GroupedRowID. Dadurch wird eine Zeilennummer basierend auf der Gruppierung von Spalte A, sortiert nach aufsteigender Spalte B, angewendet.

Rank([Column B],"asc",[Column A])` as[GroupedRowID] 

Dann ist diese Verwendung für die gleitenden Durchschnitt

Avg([Column B]) over (Intersect([Column A],LastPeriods(6,[GroupedRowID]))) 

Dies sollten Sie gehen ...

+1

@ scsimon Dank .. Zweiter Teil half mir, meine Anforderung zu erreichen. –

+0

Awesome @ NischeyAnand froh, zu helfen – scsimon

Verwandte Themen