Durchschnittlicher Sql Server 2008

Gibt den durchschnittlichen Wert eines Elements über ein bestimmtes Zeitintervall zurück. CREATE MEMBER CURRENTCUBE. MEASURES. Moving Durchschnitt ltltTarget Dimensiongtgt. ltltTarget Hierarchygtgt. CurrentMember. Lag (ltltPeriods zu Laggtgt). LtltTarget Dimensiongtgt. ltltTarget Hierarchygtgt. CurrentMember, Diese Berechnung gibt den Durchschnittswert eines Elements über das angegebene Zeitintervall zurück. Nur ich habe keine spezifizierte interal oder eine konstante Zahl, die ich in Lag setzen kann (ltltPeriods zu Laggtgt) Der Bericht, den ich habe einen Parameter, mit dem Sie ein bestimmtes Team-Projekt aus einer Liste auswählen können. Obwohl ich nicht herausgefunden habe, wie ich den Iterationsparamter aktualisieren kann, um nur die angegebenen Teamprojekt-Iterationen zu zeigen, möchte ich, dass die Grafik nur die Iterationen für das Teamprojekt und den gleitenden Durchschnitt (in der Grafik) anzeigt. Das Problem ist, dass ich nicht gerade die Zahl 6 anschließen kann, weil verschiedene Projekte wir haben, haben unterschiedliche Anzahlen von Iterationen, und der Benutzer kann jedes mögliches Projekt von der Liste im Parameter wählen. Hat jemand Vorschläge auf thisI versuchen, eine Funktion zu erstellen, die einen gleitenden gleitenden Durchschnitt in SQLServer 2008 berechnet. Ich bin ganz neu in SQL, damit ich eine ziemlich große Schwierigkeit habe. Die Daten, die ich versuche, um die gleitenden Durchschnitt auf Gruppierung nach Tag gruppiert werden müssen (es ist alle Zeitstempel Daten) und dann ein variables Gleitende durchschnittliche Fenster muss angewendet werden. Ich habe bereits eine Funktion, die die Daten nach Tag (und id) gruppiert, die unten angezeigt wird. Ich habe ein paar Fragen: Wäre es besser, die Gruppierungsfunktion innerhalb der gleitenden Durchschnittsfunktion aufzurufen oder sollte ich es alle auf einmal tun? Ist es möglich, den gleitenden Durchschnitt für die eingegebenen Daten in die Funktion zu erhalten, aber gehen Sie zurück n Tage zu Beginnen Sie den gleitenden Durchschnitt, so dass die ersten n Tage der zurückgegebenen Daten nicht 0 für ihren Durchschnitt haben (dh wenn sie einen 7 Tage gleitenden Durchschnitt vom 01-08-2011 zu 02-08-2011 wünschen, dass ich den gleitenden Durchschnitt beginne Berechnung am 01-01-2011, so dass der erste Tag, den sie definiert haben einen Wert) Ich bin in den Prozess der Suche, wie man den gleitenden Durchschnitt zu tun, und wissen, dass ein bewegliches Fenster scheint die beste Option zu sein (CurrentSum prevSum todayCount - NthDayAgoCount) nDays, aber ich bin immer noch auf die Berechnung der SQL-Implementierung dieser Arbeit. Ich habe eine Gruppierungsfunktion, die so aussieht (einige Variablen für Sichtbarkeit entfernt): Was eine Tabelle wie folgt zurückgibt: EDIT: Um die erste Frage zu beantworten, fragte ich: Ich habe eine Funktion erstellt, die eine temporäre Tabelle deklariert und die Ergebnisse eingefügt hat Aus der Zählfunktion in sie, dann verwendet das Beispiel von user662852, um den gleitenden Durchschnitt zu berechnen. Nehmen Sie den hartcodierten Datumsbereich aus Ihrer Abfrage heraus. Schreiben Sie die Ausgabe (wie Ihre Probe am Ende), um eine Temp-Tabelle (ich nannte es Besuche unten). Ich habe nicht genug Platz in Comments, um dies in Reaktion auf Ihre Frage zu sagen: Mein Join ist irgendwie kartesisch, weil es eine zwischen in der Join-Einschränkung verwendet. Jeder Datensatz in der Liste geht auf jeden anderen Datensatz, und dann möchte ich die, wo das Datum, das ich berichte, zwischen einer unteren Grenze von (-7) Tagen und heute ist. Jedes Datendatum steht zum Listendatum zur Verfügung, dies ist der Schlüssel zu Ihrer Frage. Ich konnte die Join-Bedingung als geschrieben haben Aber was wirklich geschehen war, dass ich es getestet habe, die keine Datensätze zurückgibt, weil die Syntax zwischen LOW und HIGH ist. Ich Facepalmed auf 0 Datensätze und vertauschte die Argumente, das ist alles. Versuchen Sie die folgenden, sehen, was ich meine: Dies ist die kartesische beitreten für nur ein listdate: Vergleichen Sie dies mit der tatsächlichen Join-Bedingung Siehe, wie Listendatum zwischen datadate und dataplus6 in allen Datensätzen ist Ich arbeite mit SQL Server 2008 R2, versucht zu berechnen Ein gleitender Durchschnitt. 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:58 Uhr


Comments