Wednesday 22 November 2017

Ssis Moving Average


Rolling 12 Monate Durchschnitt im DAX Die Berechnung der rollenden 12-Monats-Durchschnitt in DAX sieht aus wie eine einfache Aufgabe, aber es verbirgt sich etwas Komplexität. Dieser Artikel beschreibt, wie die beste Formel zu schreiben, um häufige Fallstricke mit Zeit Intelligenz Funktionen zu vermeiden. Wir beginnen mit dem üblichen AdventureWorks Datenmodell mit Produkten, Verkauf und Kalender Tabelle. Der Kalender wurde als Kalender-Tabelle markiert (es ist notwendig, mit jeder Zeit Intelligenz-Funktion zu arbeiten) und wir bauten eine einfache Hierarchie Jahr-Monat-Datum. Mit dieser Einrichtung ist es sehr einfach, eine erste PivotTable zu erstellen, die den Umsatz im Laufe der Zeit zeigt: Wenn Trendanalysen durchgeführt werden, wenn der Verkauf saisonal bedingt ist oder allgemeiner, wenn Sie den Effekt von Spitzen und Tropfen im Verkauf entfernen möchten, Gemeinsame Technik ist, dass der Berechnung der Wert über einen bestimmten Zeitraum, in der Regel 12 Monate, und durchschnittlich. Der rollende Durchschnitt über 12 Monate bietet einen reibungslosen Indikator für den Trend und ist sehr nützlich in Charts. Angesichts eines Datums können wir den zwölfmonatigen fortlaufenden Durchschnitt mit dieser Formel berechnen, die noch einige Probleme hat, die wir später lösen werden: Das Verhalten der Formel ist einfach: Es berechnet den Wert von Sales nach dem Erstellen eines Filters auf dem Kalender, der Zeigt genau ein Jahr voller Daten. Der Kern der Formel ist das DATESBETWEEN, das einen inklusiven Satz von Daten zwischen den beiden Grenzen zurückgibt. Der untere Punkt lautet: Lesen aus dem Innersten: Wenn wir Daten für einen Monat zeigen, sagen wir Juli 2007, nehmen wir das letzte sichtbare Datum mit LASTDATE, das den letzten Tag im Juli 2007 zurückgibt. Dann benutzen wir NEXTDAY, um den 1. zu nehmen Von August 2007 und wir verwenden schließlich SAMEPERIODLASTYEAR, um es zurück zu verschieben ein Jahr, mit dem 1. August 2006. Die obere Grenze ist einfach LASTDATE, dh Ende Juli 2007. Wenn wir diese Formel in einer PivotTable verwenden, sieht das Ergebnis gut aus, aber wir Haben Sie ein Problem für das letzte Datum: In der Tat, wie Sie in der Figur sehen können, wird der Wert bis 2008 korrekt berechnet. Dann gibt es keinen Wert im Jahr 2009 (was richtig ist, haben wir nicht Umsatz im Jahr 2009), aber es gibt Ein überraschender Wert im Dezember 2010, wo unsere Formel zeigt die Gesamtsumme statt einen leeren Wert, wie wir erwarten würden. In der Tat, am Dezember gibt LASTDATE den letzten Tag des Jahres und NEXTDAY sollte am 1. Januar 2011 zurückgegeben werden. Aber NEXTDAY ist eine Zeit-Intelligenz-Funktion und es wird erwartet, dass Sätze von bestehenden Daten zurückzugeben. Diese Tatsache ist nicht sehr offensichtlich und es ist ein paar Worte mehr wert. Zeit-Intelligenz-Funktionen führen keine mathematische Daten aus. Wenn Sie den Tag nach einem bestimmten Datum nehmen möchten, können Sie einfach 1 zu einer beliebigen Datumsspalte hinzufügen und das Ergebnis ist der nächste Tag. Stattdessen verschieben Zeit-Intelligenz-Funktionen Sätze von Datum hin und her im Laufe der Zeit. So nimmt NEXTDAY seine Eingabe (in unserem Fall eine einreihige Tabelle mit dem 31. Dezember 2010) auf und verschiebt es einen Tag später. Das Problem ist, dass das Ergebnis 1. Januar 2011 sein sollte, aber da die Kalendertabelle dieses Datum nicht enthält, ist das Ergebnis BLANK. So berechnet unser Ausdruck Umsatz mit einem leeren unteren Grenze, die den Beginn der Zeit bedeutet, was als Ergebnis der Gesamtsumme der Verkäufe bedeutet. Um die Formel zu korrigieren, genügt es, die Auswertungsreihenfolge der unteren Grenze zu ändern: Wie Sie sehen können, wird NEXTDAY nach der Umschaltung von einem Jahr aufgerufen. Auf diese Weise nehmen wir 31 Dezember 2010, verschieben Sie es auf 31 Dezember 2009 und nehmen Sie am nächsten Tag, der 1. Januar 2010 ist: ein vorhandenes Datum in der Kalender-Tabelle. Das Ergebnis ist nun das Erwartete: An dieser Stelle müssen wir nur diese Zahl durch 12 dividieren, um den rollenden Durchschnitt zu erhalten. Aber, wie Sie sich leicht vorstellen können, können wir nicht immer durch 12 teilen. In der Tat, am Anfang der Zeit gibt es nicht 12 Monate zu aggregieren, sondern eine niedrigere Zahl. Wir müssen die Anzahl der Monate berechnen, für die es Verkäufe gibt. Dies kann durch Cross-Filterung der Kalender-Tabelle mit der Verkaufstabelle, nachdem wir den neuen 12 Monate Kontext angewendet werden, erreicht werden. Wir definieren eine neue Kennzahl, die die Anzahl der bestehenden Monate im Zeitraum von 12 Monaten berechnet: Sie können in der nächsten Abbildung sehen, dass die Months12M-Methode einen korrekten Wert berechnet: Es ist zu beachten, dass die Formel nicht funktioniert, wenn Sie einen Zeitraum wählen Länger als 12 Monate, da der CalendarMonthName nur 12 Werte hat. Wenn Sie längere Zeiträume benötigen, müssen Sie eine YYYYMM-Spalte verwenden, um mehr als 12 zählen zu können. Der interessante Teil dieser Formel, die die Kreuzfilterung verwendet, ist die Tatsache, dass sie die Anzahl der verfügbaren Monate berechnet, auch wenn Sie andere Filter verwenden Attribute. Wenn Sie zum Beispiel die blaue Farbe mit einem Slicer auswählen, dann starten Sie im Juli 2007 (nicht im Jahr 2005, wie es für viele andere Farben passiert). Mit dem Cross-Filter von Sales berechnet die Formel korrekt, dass es im Juli 2007 einen einmonatigen Verkaufsumsatz für Blue gibt: An diesem Punkt ist der rollende Durchschnitt nur ein DIVIDE weg: Wenn wir ihn in einer Pivot-Tabelle verwenden, sind wir noch Haben ein kleines Problem: Tatsächlich wird der Wert auch für Monate berechnet, für die es keine Verkäufe gibt (dh zukünftige Monate): Dies kann mit einer IF-Anweisung gelöst werden, um zu verhindern, dass die Formel Werte anzeigt, wenn es keine Verkäufe gibt. Ich habe nichts gegen IF, aber für die Performance-süchtig unter euch, es ist immer daran zu erinnern, dass IF ein Performance-Killer sein könnte, denn es könnte DAX Formel Motor Kraft treten in. In diesem speziellen Fall ist der Unterschied vernachlässigbar, aber , In der Regel der beste Weg, um den Wert zu entfernen, wenn es keine Verkäufe gibt, ist auf reine Speicher-Engine-Formeln wie folgt verlassen: Vergleich eines Diagramms mit dem Avg12M mit einem anderen, die Verkäufe zeigt, können Sie leicht zu schätzen wissen, wie der rollende Durchschnitt Umreißt Trends in viel sauberer Weise: Halten Sie mich informiert über kommende Artikel (Newsletter). Deaktivieren Sie, um die Datei frei zu downloaden. Ich arbeite mit SQL Server 2008 R2 und versuche, einen gleitenden Durchschnitt zu berechnen. Für jeden Datensatz meiner Ansicht möchte ich die Werte der 250 vorherigen Datensätze sammeln und dann den Durchschnitt für diese Selektion berechnen. Meine Ansichtsspalten sind wie folgt: TransactionID ist eindeutig. Für jede TransactionID. Ich möchte den Durchschnitt für Spaltenwert über 250 Datensätze berechnen. So für die TransactionID 300, sammeln Sie alle Werte aus früheren 250 Zeilen (Ansicht wird absteigend nach TransactionID sortiert) und dann in Spalte MovAvg das Ergebnis des Mittelwerts dieser Werte schreiben. Ich bin auf der Suche, um Daten in einer Reihe von Datensätzen zu sammeln. Gefragt 28. Oktober 14 um 20: 58Rolling-Mittelwerte oder Verschieben von Durchschnitten in SSAS Moving-Mittelwerte glätten die Preisdaten zu einem Trend folgend Indikator zu bilden. Sie prognostizieren nicht die Kursrichtung, sondern definieren die aktuelle Richtung mit einer Verzögerung. Moving Averages Lag, weil sie auf vergangenen Preisen basieren. Trotz dieser Verzögerung, gleitende Durchschnitte helfen, glatte Preis-Aktion und Filter aus dem Lärm. Sie bilden auch die Bausteine ​​für viele andere technische Indikatoren und Overlays, wie Bollinger Bands. MACD und dem McClellan-Oszillator. Die drei beliebtesten Arten von gleitenden Durchschnitten sind die Simple Moving Average (SMA) und Weighted Moving Average (WMA) der Exponential Moving Average (EMA). Diese Bewegungsdurchschnitte können verwendet werden, um die Richtung des Trends zu identifizieren oder potentielle Unterstützungs - und Widerstandswerte zu definieren. Simple Moving Average (SMA) Ein einfacher gleitender Durchschnitt wird gebildet, indem der Durchschnittspreis eines Wertpapiers über eine bestimmte Anzahl von Perioden berechnet wird. Die meisten gleitenden Mittelwerte basieren auf den Schlusskursen. Ein 5-tägiger einfacher gleitender Durchschnitt ist die fünftägige Summe der Schlusskurse geteilt durch fünf. Wie der Name schon sagt, ist ein gleitender Durchschnitt ein Durchschnitt, der sich bewegt. Alte Daten werden gelöscht, wenn neue Daten verfügbar sind. Dies bewirkt, dass sich der Durchschnitt entlang der Zeitskala bewegt. Unten ist ein Beispiel für einen 5-tägigen gleitenden Durchschnitt, der sich über drei Tage entwickelt. (11 12 13 14 15) / 5 13 Zweiter Tag der 5-tägigen SMA: (12 13 14 15 16) / 5 14 Dritter Tag der 5-tägigen SMA: (13 14 15 16 17) / 5 15 Der erste Tag des gleitenden Durchschnitts umfasst lediglich die letzten fünf Tage. Der zweite Tag des gleitenden Mittelwerts fällt den ersten Datenpunkt (11) und fügt den neuen Datenpunkt (16) hinzu. Der dritte Tag des gleitenden Durchschnitts setzt sich fort, indem der erste Datenpunkt (12) abfällt und der neue Datenpunkt (17) addiert wird. Im obigen Beispiel steigen die Preise allmählich von 11 auf 17 über insgesamt sieben Tage. Beachten Sie, dass der gleitende Durchschnitt auch von 13 auf 15 über einen dreitägigen Berechnungszeitraum steigt. Beachten Sie auch, dass jeder gleitende Durchschnittswert knapp unter dem letzten Kurs liegt. Zum Beispiel ist der gleitende Durchschnitt für Tag eins gleich 13 und der letzte Preis ist 15. Preise der vorherigen vier Tage waren niedriger und dies führt dazu, dass der gleitende Durchschnitt zu verzögern. In einer Bewegenden Aggregation. Ist die wichtige Technik, um einen Bereich mit in der Ebene mit Endpunkten, die relativ zum aktuellen Mitglied können wir diesen Bereich mit vielen Funktionen in MDX in Abhängigkeit von der Reichweite Mittelwerte für 6 Monate Bereich Mittelwerte für 6 Monate Bereich Durchschnitt der aktuellen Periode und Vorheriger Zeitraum Verwenden von Parallelperioden mit Member Measures. avg12ms als avg (Datum. Monat von Year. lag (11): Datum. Monat des Jahres, Measures. Internet Verkaufsbetrag) Member Measures. avg6ms als avg (Datum. Monat von Year. lag (5): Datum. Monat des Jahres, Measures. Internet Verkaufsbetrag) Mitglied Measures. avg3ms als avg (Datum. Monat von Year. lag (2): Datum. Monat of Year, Measures. Internet Sales Amount) wählen Sie auf Spalten aus Abenteuer Werke Post Navigation

No comments:

Post a Comment