Ich versuche Folgendes zu schreiben, um eine laufende Summe unterschiedlicher NumUsers zu erhalten:
NumUsers = COUNT(DISTINCT [UserAccountKey]) OVER (PARTITION BY [Mth])
Das Management Studio scheint darüber nicht allzu glücklich zu sein. Der Fehler verschwindet, wenn ich das DISTINCTSchlüsselwort entferne , aber dann wird es nicht eindeutig gezählt.
DISTINCTscheint innerhalb der Partitionsfunktionen nicht möglich zu sein. Wie finde ich die eindeutige Anzahl? Benutze ich eine traditionellere Methode wie eine korrelierte Unterabfrage?
Wenn Sie dies etwas OVERgenauer untersuchen, funktionieren diese Funktionen möglicherweise anders als Oracle, da sie nicht SQL-Serverzur Berechnung der laufenden Summen verwendet werden können.
Ich habe hier auf SQLfiddle ein Live-Beispiel hinzugefügt, in dem ich versuche, mithilfe einer Partitionsfunktion eine laufende Summe zu berechnen.
COUNTmitORDER BYstattPARTITION BYschlecht definiert ist , im Jahr 2008. Ich bin überrascht , es ist so dass Sie es überhaupt haben. Gemäß der Dokumentation ist es Ihnen nicht gestattet,ORDER BYeine Aggregatfunktion zu verwenden.