Sunday 19 November 2017

Calculate 40 Day Durchschnittlicher Durchschnitt


Moving Average Dieses Beispiel lehrt, wie Sie den gleitenden Durchschnitt einer Zeitreihe in Excel berechnen. Eine Bewegung wird verwendet, um Unregelmäßigkeiten (Spitzen und Täler) zu glätten, um Trends leicht zu erkennen. 1. Erstens, werfen wir einen Blick auf unsere Zeitreihe. 2. Klicken Sie auf der Registerkarte Daten auf Datenanalyse. Hinweis: Klicken Sie hier, um das Analyse-ToolPak-Add-In zu laden. 3. Wählen Sie Verschiebender Durchschnitt aus, und klicken Sie auf OK. 4. Klicken Sie im Feld Eingabebereich auf den Bereich B2: M2. 5. Klicken Sie in das Feld Intervall und geben Sie 6 ein. 6. Klicken Sie in das Feld Ausgabebereich und wählen Sie Zelle B3 aus. 8. Zeichnen Sie ein Diagramm dieser Werte. Erläuterung: Da wir das Intervall auf 6 setzen, ist der gleitende Durchschnitt der Durchschnitt der letzten 5 Datenpunkte und der aktuelle Datenpunkt. Als Ergebnis werden Spitzen und Täler geglättet. Die Grafik zeigt eine zunehmende Tendenz. Excel kann den gleitenden Durchschnitt für die ersten 5 Datenpunkte nicht berechnen, da nicht genügend frühere Datenpunkte vorhanden sind. 9. Wiederholen Sie die Schritte 2 bis 8 für Intervall 2 und Intervall 4. Fazit: Je größer das Intervall, desto mehr werden die Spitzen und Täler geglättet. Je kleiner das Intervall, desto näher sind die gleitenden Mittelwerte zu den tatsächlichen Datenpunkten. Mögen Sie diese kostenlose Website Bitte teilen Sie diese Seite auf GoogleMoving Durchschnitte: Was sind sie Unter den beliebtesten technischen Indikatoren werden gleitende Durchschnitte verwendet, um die Richtung des aktuellen Trends zu messen. Jede Art von gleitendem Durchschnitt (gemeinhin in diesem Tutorial als MA geschrieben) ist ein mathematisches Ergebnis, das durch Mittelung einer Anzahl von vergangenen Datenpunkten berechnet wird. Sobald es bestimmt ist, wird der daraus resultierende Mittelwert dann auf eine Tabelle aufgetragen, um es den Händlern zu ermöglichen, auf geglättete Daten zu schauen, anstatt sich auf die täglichen Preisschwankungen zu konzentrieren, die in allen Finanzmärkten inhärent sind. Die einfachste Form eines gleitenden Durchschnitts, der als einfacher gleitender Durchschnitt (SMA) bekannt ist, wird berechnet, indem das arithmetische Mittel eines gegebenen Satzes von Werten genommen wird. Um beispielsweise einen gleitenden 10-Tage-Durchschnitt zu berechnen, würden Sie die Schlusskurse der letzten 10 Tage addieren und dann das Ergebnis mit 10 teilen. In Abbildung 1 ist die Summe der Preise für die letzten 10 Tage (110) Geteilt durch die Anzahl von Tagen (10), um den 10-Tage-Durchschnitt zu erreichen. Wenn ein Trader einen 50-Tage-Durchschnitt sehen möchte, würde die gleiche Art der Berechnung gemacht, aber er würde auch die Preise in den letzten 50 Tagen enthalten. Der daraus resultierende Durchschnitt unter (11) berücksichtigt die letzten 10 Datenpunkte, um den Händlern eine Vorstellung davon zu geben, wie ein Vermögenswert im Verhältnis zu den vergangenen 10 Tagen bewertet wird. Vielleicht fragen Sie sich, warum technische Händler nennen dieses Tool einen gleitenden Durchschnitt und nicht nur ein normaler Durchschnitt. Die Antwort ist, dass, wenn neue Werte verfügbar werden, die ältesten Datenpunkte aus dem Satz fallen gelassen werden müssen und neue Datenpunkte hereinkommen müssen, um sie zu ersetzen. Somit bewegt sich der Datensatz ständig auf neue Daten, sobald er verfügbar ist. Diese Berechnungsmethode stellt sicher, dass nur die aktuellen Informationen berücksichtigt werden. Wenn in Fig. 2 der neue Wert von 5 zu dem Satz hinzugefügt wird, bewegt sich das rote Feld (das die letzten 10 Datenpunkte darstellt) nach rechts und der letzte Wert von 15 wird aus der Berechnung entfernt. Weil der relativ kleine Wert von 5 den hohen Wert von 15 ersetzt, würden Sie erwarten, dass der Durchschnitt des Datensatzabbaus zu sehen, was er tut, in diesem Fall von 11 bis 10. Wie sehen sich die gleitenden Mittelwerte aus? MA berechnet worden sind, werden sie auf ein Diagramm aufgetragen und dann verbunden, um eine gleitende mittlere Linie zu erzeugen. Diese Kurvenlinien sind auf den Diagrammen der technischen Händler üblich, aber wie sie verwendet werden, können drastisch variieren (mehr dazu später). Wie Sie in Abbildung 3 sehen können, ist es möglich, mehr als einen gleitenden Durchschnitt zu irgendeinem Diagramm hinzuzufügen, indem man die Anzahl der Zeitperioden, die in der Berechnung verwendet werden, anpasst. Diese kurvenreichen Linien scheinen vielleicht ablenkend oder verwirrend auf den ersten, aber youll wachsen Sie daran gewöhnt, wie die Zeit vergeht. Die rote Linie ist einfach der durchschnittliche Preis in den letzten 50 Tagen, während die blaue Linie der durchschnittliche Preis in den letzten 100 Tagen ist. Nun, da Sie verstehen, was ein gleitender Durchschnitt ist und wie es aussieht, stellen Sie auch eine andere Art von gleitenden Durchschnitt ein und untersuchen, wie es sich von der zuvor genannten einfachen gleitenden Durchschnitt unterscheidet. Die einfache gleitende Durchschnitt ist sehr beliebt bei den Händlern, aber wie alle technischen Indikatoren, hat es seine Kritiker. Viele Personen argumentieren, dass die Nützlichkeit der SMA begrenzt ist, da jeder Punkt in der Datenreihe gleich gewichtet wird, unabhängig davon, wo er in der Sequenz auftritt. Kritiker argumentieren, dass die neuesten Daten bedeutender sind als die älteren Daten und sollten einen größeren Einfluss auf das Endergebnis haben. Als Reaktion auf diese Kritik begannen die Händler, den jüngsten Daten mehr Gewicht zu verleihen, was seitdem zur Erfindung verschiedener Arten von neuen Durchschnittswerten geführt hat, wobei der populärste der exponentielle gleitende Durchschnitt (EMA) ist. (Für weitere Informationen siehe Grundlagen der gewichteten gleitenden Mittelwerte und was ist der Unterschied zwischen einer SMA und einer EMA) Exponentieller gleitender Durchschnitt Der exponentielle gleitende Durchschnitt ist eine Art von gleitendem Durchschnitt, die den jüngsten Preisen mehr Gewicht verleiht, um sie reaktionsfähiger zu machen Zu neuen Informationen. Das Erlernen der etwas komplizierten Gleichung für die Berechnung einer EMA kann für viele Händler unnötig sein, da fast alle Kartierungspakete die Berechnungen für Sie durchführen. Jedoch für Sie Mathegeeks heraus dort, ist hier die EMA-Gleichung: Wenn Sie die Formel verwenden, um den ersten Punkt der EMA zu berechnen, können Sie feststellen, dass es keinen Wert gibt, der als das vorhergehende EMA benutzt werden kann. Dieses kleine Problem kann gelöst werden, indem man die Berechnung mit einem einfachen gleitenden Durchschnitt beginnt und mit der obigen Formel fortfährt. Wir haben Ihnen eine Beispielkalkulationstabelle zur Verfügung gestellt, die praktische Beispiele enthält, wie Sie sowohl einen einfachen gleitenden Durchschnitt als auch einen exponentiellen gleitenden Durchschnitt berechnen können. Der Unterschied zwischen der EMA und SMA Nun, da Sie ein besseres Verständnis haben, wie die SMA und die EMA berechnet werden, können wir einen Blick auf, wie diese Mittelwerte unterscheiden. Mit Blick auf die Berechnung der EMA, werden Sie feststellen, dass mehr Wert auf die jüngsten Datenpunkte gelegt wird, so dass es eine Art von gewichteten Durchschnitt. In Abbildung 5 sind die Anzahl der Zeitperioden, die in jedem Durchschnitt verwendet werden, identisch (15), aber die EMA reagiert schneller auf die sich ändernden Preise. Beachten Sie, wie die EMA einen höheren Wert hat, wenn der Preis steigt, und fällt schneller als die SMA, wenn der Preis sinkt. Diese Reaktionsfähigkeit ist der Hauptgrund, warum viele Händler es vorziehen, die EMA über die SMA zu verwenden. Was sind die verschiedenen Tage Durchschnittliche Mittelwerte sind eine völlig anpassbare Indikator, was bedeutet, dass der Benutzer frei wählen können, was Zeitrahmen sie bei der Schaffung der durchschnittlichen wollen. Die häufigsten Zeitabschnitte, die bei gleitenden Durchschnitten verwendet werden, sind 15, 20, 30, 50, 100 und 200 Tage. Je kürzer die Zeitspanne, die verwendet wird, um den Durchschnitt zu erzeugen, desto empfindlicher wird es für Preisänderungen sein. Je länger die Zeitspanne, desto weniger empfindlich, oder mehr geglättet, wird der Durchschnitt sein. Es gibt keinen richtigen Zeitrahmen für die Einrichtung Ihrer gleitenden Durchschnitte. Der beste Weg, um herauszufinden, welche am besten für Sie arbeitet, ist es, mit einer Reihe von verschiedenen Zeitperioden zu experimentieren, bis Sie eine finden, die zu Ihrer Strategie passt. Moving Averages: So verwenden Sie Them Subscribe to News Für die neuesten Erkenntnisse und Analysen nutzen Dank für die Unterzeichnung bis zu Investopedia Insights - News to Use. Moving Average Indicator Gleitende Durchschnitte bieten eine objektive Messung der Trendrichtung durch Glättung von Preisdaten. In der Regel berechnet mit Schlusskursen, kann der gleitende Durchschnitt auch mit Median verwendet werden. typisch. Gewichteten Abschluss. Und hohe, niedrige oder offene Preise sowie andere Indikatoren. Kürzere bewegliche Durchschnitte sind empfindlicher und identifizieren neue Trends früher, geben aber auch mehr falsche Alarme. Längere bewegte Durchschnitte sind zuverlässiger, aber weniger reagierend, nur Abholung der großen Trends. Verwenden Sie einen gleitenden Durchschnitt, der die Hälfte der Länge des Zyklus, den Sie verfolgen. Wenn die Peak-to-Peak-Zykluslänge ungefähr 30 Tage beträgt, dann ist ein 15 Tage gleitender Durchschnitt geeignet. Wenn 20 Tage, dann ein 10 Tage gleitender Durchschnitt geeignet ist. Einige Händler werden jedoch 14 und 9 Tage gleitende Durchschnitte für die oben genannten Zyklen in der Hoffnung der Erzeugung von Signalen etwas vor dem Markt verwenden. Andere favorisieren die Fibonacci-Zahlen von 5, 8, 13 und 21. 100 bis 200 Tage (20 bis 40 Wochen) gleitende Durchschnittswerte sind für längere Zyklen 20 bis 65 Tage (4 bis 13 Wochen) gleitende Mittelwerte sind für Zwischenzyklen und 5 beliebt Bis 20 Tage für kurze Zyklen. Das einfachste gleitende Mittelsystem erzeugt Signale, wenn der Kurs den gleitenden Durchschnitt überquert: Gehen Sie lange, wenn der Kurs über dem gleitenden Durchschnitt von unten über den Kurs geht. Gehen Sie kurz, wenn der Kurs unter den gleitenden Durchschnitt von oben geht. Das System ist anfällig für whipsaws in ranging-Märkte, mit Preis-Kreuzung hin und her über den gleitenden Durchschnitt, wodurch eine große Anzahl von falschen Signalen. Aus diesem Grund verwenden gleitende Durchschnittssysteme normalerweise Filter zur Verringerung von Peitschenhieben. Komplexere Systeme verwenden mehr als einen gleitenden Durchschnitt. Zwei Moving Averages verwendet einen schnelleren gleitenden Durchschnitt als Ersatz für Schlusskurs. Drei Moving Averages beschäftigen einen dritten gleitenden Durchschnitt, um festzustellen, wann der Preis reicht. Multiple Moving Averages verwenden eine Serie von sechs schnell bewegten Durchschnitten und sechs langsam bewegten Durchschnitten, um einander zu bestätigen. Displaced Moving Averages sind nützlich für Trendfolgen, wodurch die Anzahl der Whipsaws reduziert wird. Keltner-Kanäle verwenden Banden, die in einem Vielfachen des durchschnittlichen wahren Bereichs gezeichnet sind, um gleitende Durchschnittsübergänge zu filtern. Die populäre MACD (Moving Average Convergence Divergence) - Anzeige ist eine Variation der beiden Moving Average System, aufgetragen als ein Oszillator, der den langsamen gleitenden Durchschnitt von dem schnell bewegten Durchschnitt subtrahiert. Es gibt mehrere verschiedene Arten von gleitenden Durchschnitten, jeweils mit ihren eigenen Besonderheiten. Einfache gleitende Mittelwerte sind am einfachsten zu konstruieren, aber auch am anfälligsten für Verzerrungen. Gewichtete gleitende Durchschnitte sind schwer zu konstruieren, aber zuverlässig. Exponentielle gleitende Durchschnitte erreichen die Vorteile der Gewichtung kombiniert mit der Leichtigkeit der Konstruktion. Wilder gleitende Durchschnitte werden hauptsächlich in Indikatoren verwendet, die von J. Welles Wilder entwickelt wurden. Im Wesentlichen die gleiche Formel wie exponentielle gleitende Durchschnitte, verwenden sie unterschiedliche Gewichtungen mdash, für die Benutzer zu berücksichtigen müssen. Indikatorbedienfeld zeigt, wie Sie Bewegungsdurchschnitte einrichten. Die Standardeinstellung ist ein 21 Tage exponentieller gleitender Durchschnitt. Wie man einen gleitenden Durchschnitt verwendet, um Aktien zu kaufen Der gleitende Durchschnitt (MA) ist ein einfaches technisches Analyse-Tool, das Preisdaten durch die Schaffung eines ständig aktualisierten Durchschnittspreises ausgleicht. Der Durchschnitt wird über einen bestimmten Zeitraum, wie 10 Tage, 20 Minuten, 30 Wochen oder jede Zeitdauer, die der Händler wählt, übernommen. Es gibt Vorteile mit einem gleitenden Durchschnitt in Ihrem Trading, sowie Optionen auf welche Art von gleitenden Durchschnitt zu verwenden. Moving durchschnittliche Strategien sind auch beliebt und kann auf jeden Zeitrahmen angepasst werden, sowohl langfristige Investoren und kurzfristige Händler passen. (Siehe Die Top Four Technical Indicators Trend Trader müssen wissen.) Warum ein Moving Average Ein gleitender Durchschnitt kann helfen, reduzieren die Menge an Lärm auf einer Preis-Chart. Schauen Sie sich die Richtung der gleitenden Durchschnitt, um eine grundlegende Vorstellung davon, wie der Preis bewegt wird. Abgewinkelt und der Preis ist nach oben (oder war vor kurzem) insgesamt, abgewinkelt und der Preis verschiebt sich insgesamt, bewegte sich seitwärts und der Preis ist wahrscheinlich in einer Reihe. Ein gleitender Durchschnitt kann auch als Unterstützung oder Widerstand dienen. In einem Aufwärtstrend kann ein 50-Tage-, 100-Tage - oder 200-Tage-Bewegungsdurchschnitt als Stützpegel dienen, wie in der folgenden Abbildung gezeigt. Dies ist, weil der Durchschnitt fungiert wie ein Boden (Unterstützung), so dass der Preis springt von ihm aus. In einem Abwärtstrend kann ein gleitender Durchschnitt als Widerstand wie eine Decke wirken, der Preis schlägt ihn und fängt wieder an, wieder zu fallen. Der Preis nicht immer respektieren die gleitenden Durchschnitt auf diese Weise. Der Preis kann durch ihn leicht oder stoppen und rückwärts laufen, bevor er es erreicht. Als allgemeine Richtlinie, wenn der Preis über einem gleitenden Durchschnitt ist der Trend ist. Wenn der Preis unter einem gleitenden Durchschnitt ist der Trend nach unten. Bewegungsdurchschnitte können jedoch unterschiedliche Längen haben (kurz erörtert), so kann man einen Aufwärtstrend angeben, während ein anderer einen Abwärtstrend anzeigt. Arten von gleitenden Durchschnitten Ein gleitender Durchschnitt kann auf unterschiedliche Weise berechnet werden. Ein fünf Tage einfacher gleitender Durchschnitt (SMA) addiert einfach die fünf letzten täglichen Schlusspreise und teilt sie durch fünf, um einen neuen Durchschnitt jeden Tag zu verursachen. Jeder Durchschnitt ist mit dem nächsten verbunden, wodurch die singuläre fließende Linie. Eine andere populäre Art von gleitendem Durchschnitt ist der exponentielle gleitende Durchschnitt (EMA). Die Berechnung ist komplexer, erfordert aber grundsätzlich mehr Gewichtung auf die jüngsten Preise. Plot ein 50-Tage-SMA und eine 50-Tage-EMA auf dem gleichen Chart, und Sie werden bemerken, dass die EMA reagiert schneller auf Preisänderungen als die SMA, aufgrund der zusätzlichen Gewichtung auf aktuelle Preisdaten. Charting-Software und Handelsplattformen tun die Berechnungen, so dass keine manuelle Mathematik erforderlich ist, um eine MA zu verwenden. Eine Art von MA ist nicht besser als eine andere. Eine EMA kann in einer Aktie oder einem Finanzmarkt für eine Zeit besser funktionieren, und manchmal kann ein SMA besser funktionieren. Der Zeitrahmen, der für einen gleitenden Durchschnitt gewählt wird, wird auch eine bedeutende Rolle spielen, wie effektiv er ist (unabhängig vom Typ). Durchschnittliche durchschnittliche Länge Durchschnittliche durchschnittliche Längen sind 10, 20, 50, 100 und 200. Diese Längen können je nach Handelshorizont auf einen beliebigen Chartzeitrahmen (eine Minute, täglich, wöchentlich usw.) angewendet werden. Der Zeitrahmen oder die Länge, die Sie für einen gleitenden Durchschnitt wählen, der auch Rückblickzeit genannt wird, kann eine große Rolle spielen, wie effektiv er ist. Ein MA mit einem kurzen Zeitrahmen reagiert viel schneller auf Preisänderungen als ein MA mit einem langen Blick zurück Zeitraum. In der untenstehenden Grafik zeigt der 20-Tage-Gleitkurs den tatsächlichen Preis genauer an als der 100-Tage-Kurs. Der 20-tägige Tag kann für einen kürzerfristigen Trader von analytischem Nutzen sein, da er dem Preis enger folgt und daher weniger Verzögerungen verursacht als der längerfristige gleitende Durchschnitt. Lag ist die Zeit, die für einen gleitenden Durchschnitt benötigt wird, um eine mögliche Umkehr zu signalisieren. Als eine allgemeine Richtlinie, wenn der Preis über einem gleitenden Durchschnitt liegt, wird der Trend betrachtet. Also, wenn der Preis sinkt unter dem gleitenden Durchschnitt es signalisiert eine potenzielle Umkehr auf der Grundlage dieser MA. Ein 20-Tage gleitender Durchschnitt liefert viel mehr Umkehrsignale als ein 100-Tage gleitender Durchschnitt. Ein gleitender Durchschnitt kann jede beliebige Länge, 15, 28, 89 usw. sein. Die Anpassung des gleitenden Durchschnitts, so dass es genauere Signale auf historischen Daten liefert, kann dazu beitragen, bessere Zukunftssignale zu erzeugen. Handelsstrategien - Crossovers Crossovers sind eine der wichtigsten gleitenden Durchschnittsstrategien. Der erste Typ ist ein Preis-Crossover. Dies wurde früher diskutiert und ist, wenn der Kurs über oder unter einem gleitenden Durchschnitt kreuzt, um eine mögliche Trendveränderung zu signalisieren. Eine andere Strategie ist es, zwei gleitende Durchschnitte auf ein Diagramm anzuwenden, ein längeres und ein kürzeres. Wenn die kürzere MA über die längerfristige MA MACHT ein Kaufsignal, wie es zeigt den Trend nach oben verschoben wird. Dies ist bekannt als ein goldenes Kreuz. Wenn die kürzere MA-Kreuzung unterhalb der längerfristigen MA ist ein Verkaufssignal, wie es zeigt den Trend nach unten verschoben wird. Dies wird als Tot - / Todeskreuz bezeichnet. Bewegungsdurchschnitte werden auf der Grundlage von historischen Daten berechnet, und nichts über die Berechnung ist prädiktive Natur. Daher können Ergebnisse mit gleitenden Durchschnitten zufällig sein - manchmal scheint der Markt zu respektieren MA Support / Widerstand und Handel Signale. Und andere Male zeigt es keinen Respekt. Ein großes Problem ist, dass, wenn die Preisaktion wird choppy der Preis schwingen hin und her erzeugen mehrere Trend Umkehr / Handel Signale. Wenn dies geschieht, sein bestes, um beiseite zu treten oder einen anderen Indikator zu verwenden, um zu helfen, den Trend zu erklären. Dasselbe kann bei MA-Crossover auftreten, wo die MAs für eine Zeitspanne verwirren, die mehrere (magere Verlierenden) Trades auslöst. Gleitende Mittelwerte arbeiten sehr gut in starken Trending-Bedingungen, aber oft schlecht in choppy oder ranging Bedingungen. Das Anpassen des Zeitrahmens kann dies vorübergehend unterstützen, obwohl es an einem gewissen Punkt wahrscheinlich ist, dass diese Probleme ungeachtet des für die MA (s) gewählten Zeitrahmens auftreten. Ein gleitender Durchschnitt vereinfacht die Preisdaten durch Glättung und Erzeugung einer fließenden Linie. Dadurch können Trenntrends vereinfacht werden. Exponentielle gleitende Mittelwerte reagieren schneller auf Preisänderungen als ein einfacher gleitender Durchschnitt. In einigen Fällen kann dies gut sein, und in anderen Fällen kann es zu falschen Signalen. Auch die Wechselkurse mit einer kürzeren Rückblickperiode (z. B. 20 Tage) reagieren schneller auf Preisänderungen als ein Durchschnitt mit einer längeren Blickperiode (200 Tage). Moving Durchschnitt Crossovers sind eine beliebte Strategie für die Ein-und Ausgänge. MAs können auch Bereiche der potenziellen Unterstützung oder Widerstand. Während dies kann prädiktiv erscheinen, sind gleitende Mittelwerte immer auf historischen Daten basieren und zeigen einfach den durchschnittlichen Preis über einen bestimmten Zeitraum. Ich habe eine Tabelle, die die Informationen über Benutzer-Aufrufe in einem Call-Center speichert. Die Tabelle hat eine Callid, das Datum, an dem der Anruf gemacht wurde, das aktuelle Datum und die Uhrzeit des Anrufs, den Anruftyp und eine mit dem Anruf verbundene Punktzahl. Meine Anforderung ist es, einen 40 Tage gleitenden Durchschnitt der Punktzahl in Bezug auf den Anruftag zu berechnen. Die 40 Tage sollten ab dem Tag des Anrufs vom Vortag beginnen. Wenn es in den letzten 40 Tagen keinen Anruf gibt, sollte es Zeilen für das Anrufdatum enthalten, für die der gleitende Durchschnitt berechnet wird. Unten ist Beispieldaten: So sollte die Ausgabe sein: Schema und Testdaten unterhalb Link: SQL Fiddle Ich kann ROWS in einer AVG-Fensterdefinition nicht verwenden, da testaes Tausende von Zeilen für einen bestimmten Tag hat. Diese Frage sollte die tatsächliche Tabelle Definition mit Datentypen und Einschränkungen enthalten. Auch die Anforderung berechnen einen 40 Tage gleitenden Durchschnitt der Partitur in Bezug auf den Aufruf Tag ist nicht im Ergebnis wider. Wo ist der Anruftag gegangen Wollen Sie einen gleitenden Durchschnitt für die gesamte Tabelle oder nur für einen gegebenen Zeitabschnitt berechnen? Bitte klären Sie. Ndash Erwin Brandstetter Es ist nicht wirklich klar, aus der Frage, was die Rolle der calltypeid Spalte ist. Ich werde es ignorieren, bis Sie klären. Ohne Fensterfunktionen Hier ist eine einfache Variante, die überhaupt keine Fensterfunktionen verwendet. Stellen Sie sicher, dass es einen Index auf (calldtkey, aesraw) gibt. CTEDates gibt eine Liste aller Daten in der Tabelle zurück und berechnet den Durchschnitt für jeden Tag. Dieser Durchschnitt wird für den ersten Tag benötigt. Der Server scannt den ganzen Index irgendwie, also ist die Berechnung eines solchen Durchschnitts billig. Dann, für jeden einzelnen Tag verwende ich eine Selbst-beitreten, um den Durchschnitt für 40 vorherige Tage zu berechnen. Damit wird NULL für den ersten Tag zurückgegeben, der in der Hauptabfrage durch den durchschnittlichen aktuellen Tag ersetzt wird. Sie müssen nicht CTE hier verwenden, es macht die Abfrage einfacher zu lesen. Mit dem empfohlenen Index sollte diese Lösung nicht schlecht sein. Es gibt eine ähnliche Frage, aber für SQL Server (Datumsbereich Rolling Summe mit Fenster-Funktionen). Postgres scheint RANGE mit einem Fenster von angegebener Größe zu unterstützen, während SQL Server in diesem Moment nicht. Also, Lösung für Postgres ist wahrscheinlich ein wenig einfacher. Der Schlüsselteil wäre: Um den gleitenden Durchschnitt mit diesen Fensterfunktionen zu berechnen, müssen Sie wahrscheinlich die Lücken in den Daten zuerst füllen, damit die Tabelle mindestens eine Zeile für jeden Tag hat (mit NULL-Werten für aesraw in diesen Dummyzeilen). Wie Erwin Brandstetter in seiner Antwort richtig bemerkt hat. Im Moment (wie von Postgres 9.5) die RANGE-Klausel in Postgres hat noch Einschränkungen ähnlich SQL Server. Docs sagen: Der Wert PRECEDING und der Wert FOLLOWING sind derzeit nur im ROWS-Modus erlaubt. Also, diese Methode mit dem RANGE oben würde nicht für Sie arbeiten, auch wenn Sie Postgres 9.5 verwendet. Verwenden von Fensterfunktionen Sie können die in der Frage für SQL Server oben beschriebenen Methoden verwenden. Zum Beispiel gruppieren Sie Ihre Daten in tägliche Summen, fügen Sie Zeilen für fehlende Tage, berechnen die bewegten SUM und COUNT mit OVER mit ROWS und dann berechnen gleitenden Durchschnitt. Etwas in dieser Richtung: Das Ergebnis ist das gleiche wie in der ersten Variante. Siehe SQL Fiddle. Auch dies könnte mit Inlined Sub-Abfragen ohne CTEs geschrieben werden. Es lohnt sich, auf die realen Daten die Leistung der verschiedenen Varianten zu überprüfen. Die große Prämie macht die derzeit akzeptierte Antwort vorbildlich, aber ich bin nicht ganz glücklich mit einigen Details. Daher fügte ich diese Antwort. Tabellendefinition Sie sollten eine aktuelle Tabellendefinition bereitgestellt haben, um dies zu vereinfachen. Nach den Beispieldaten ist calldttm ein Typ-Zeitstempel mit Zeitzone (timestamptz). Die Spalte calldtkey ist nicht vollständig funktionsabhängig, da das passende Datum von der Zeitzone abhängt. Aber wenn Sie definieren, dass (nicht nur ein Offset, hüten Sie sich von DST), kann das Datum leicht und zuverlässig aus einem timestamptz abgeleitet werden und sollte nicht redundant gespeichert werden. Um es richtig zu machen, verwenden Sie einen Ausdruck wie: Sie können eine MATERIALISIERTE ANSICHT mit der abgeleiteten Datumspalte für Benutzerfreundlichkeit hinzufügen. Für die Zwecke dieser Frage bleibe ich an Ihrem gegebenen Tisch. 40 Tage Frage und Antwort beide zählen 41 Tage statt 40 wie pro Anforderung. Untere und obere Schranke enthalten sind, was zu einem (eher gemeinsamen) Off-by-one-Fehler. Folglich bekomme ich verschiedene Ergebnisse in zwei Reihen unten. Datum. Intervall. Zeitstempel Das Subtrahieren eines Intervalls von einem Datum erzeugt einen Zeitstempel (wie in calldtkey - INTERVAL 41 Tag). Für diese Abfrage ist es effizienter, eine Ganzzahl zu subtrahieren. Ein anderes Datum erzeugen (wie calldtkey - 41). Nicht möglich mit einer RANGE-Klausel Vladimir schlug (jetzt fixiert) eine Lösung mit der RANGE-Klausel in der Rahmendefinition der Fensterfunktionen in Postgres 9.5 vor. Tatsächlich hat sich in dieser Hinsicht zwischen Postgres 9.4 und 9.5 nichts geändert, nicht einmal der Text im Handbuch. Rahmendefinition von Fensterfunktionen erlaubt nur RANGE UNBOUNDED PRECEDING und RANGE UNBOUNDED FOLLOWING - nicht mit Werten. Antwort Natürlich können Sie einen CTE verwenden, um täglich sum / count / avg on the fly zu berechnen. Aber dein Tisch. Speichert die Informationen über Benutzer-Aufrufe in einem Call-Center Diese Art von Informationen nicht später ändern. So berechnen Sie täglich Aggregate einmal in einer materialisierten Ansicht und bauen auf, dass. Der aktuelle Tag fehlt immer, aber das ist ein Feature. Die Ergebnisse sind nicht korrekt, bevor der Tag vorbei ist. Der MV muss einmal pro Tag aufgefrischt werden, bevor Sie Ihre Abfrage ausführen oder der letzte Tag fehlt. Ein Index für die zugrundeliegende Tabelle ist hierfür nicht notwendig, da die gesamte Tabelle trotzdem gelesen wird. Sie können eine intelligentere materialisierte Ansicht manuell erstellen und nur inkrementell neue Tage hinzufügen, anstatt alles mit Standard-MVs neu zu erstellen. Aber das geht über den Rahmen der Frage hinaus. Ich schlage stark einen Index auf dem MV vor, zwar: Ich hielt nur dayum an und dayct, das für Index-nur Scans hofft. Wenn Sie nicht sehen, die in Ihre Abfragen, brauchen Sie nicht die Spalten in den Index. Wenn Sie dies oft ausführen, würde ich wickeln Sie die ganze Shebang in eine MV, um wiederholte Berechnungen zu vermeiden. Eine Lösung mit Fensterfunktionen und eine Rahmenklausel ROWS BETWEEN. Wäre auch möglich. Aber Ihre Beispieldaten schlagen vor, dass Sie nicht Werte für die meisten der Tage im Bereich haben (viel mehr Lücken als Inseln), also erwarte ich nicht, daß es schneller ist. Ähnliche Artikel:

No comments:

Post a Comment