Ich versuche, das Maximum eines Wertes über einen relativen Datumsbereich zu berechnen. Angenommen, ich habe diese Spalten: Datum, Woche, Kategorie, Wert. Hinweis: Die Spalte "Woche" ist der Montag der Woche des entsprechenden Datums.Berechne MAX für Wert über einen relativen Datumsbereich
Ich möchte eine Tabelle erstellen, die den MAX-Wert innerhalb der letzten zwei Wochen für jede Kombination aus Datum, Woche, Kategorie angibt, so dass die Ausgabe Folgendes erzeugt: Datum, Woche, Kategorie, Wert, 2WochePriorMAX.
Wie würde ich diese Frage schreiben? Ich glaube nicht, folgende funktionieren würde:
SELECT Date, Week, Value,
MAX(Value) OVER (PARTITION BY Category
ORDER BY Week
ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) as 2WeeksPriorMAX
Die obige Abfrage berücksichtigt nicht für Fälle, in denen es fehlende Werte für eine bestimmte Kategorie sind, Woche Kombination innerhalb der letzten 2 Wochen, und deshalb wäre es umspannt weiter als 2 Wochen, wenn es die 2 vorhergehenden Reihen analysiert.
LEFT JOINING es mit einer Daten Tabelle Sie würden Ihr Problem gelöst haben. –
Markieren Sie Ihre Frage mit der von Ihnen verwendeten Datenbank. –
Ihre Frage ähnelt [Datumsbereich Rolling Summe mit Fensterfunktionen] (https://dba.stackexchange.com/q/114403/57105) gefragt auf dba.se –