Estoy tratando de escribir lo siguiente para obtener un total acumulado de NumUsers distintos, así:
NumUsers = COUNT(DISTINCT [UserAccountKey]) OVER (PARTITION BY [Mth])
Management Studio no parece muy feliz con esto. El error desaparece cuando elimino la DISTINCTpalabra clave, pero luego no será un recuento distinto.
DISTINCTno parece ser posible dentro de las funciones de partición. ¿Cómo hago para encontrar el recuento distinto? ¿Utilizo un método más tradicional , como una subconsulta correlacionada?
Analizando esto un poco más, tal vez estas OVERfunciones funcionen de manera diferente a Oracle en la forma en que no se pueden usar SQL-Serverpara calcular los totales acumulados.
Agregué un ejemplo en vivo aquí en SQLfiddle donde intento usar una función de partición para calcular un total acumulado .
COUNTcon enORDER BYlugar dePARTITION BYestá mal definido en 2008. Me sorprende que te permita tenerlo. Según la documentación , no se le permite unaORDER BYfunción agregada.