Estou tentando escrever o seguinte para obter um total em execução de NumUsers distintos, como:
NumUsers = COUNT(DISTINCT [UserAccountKey]) OVER (PARTITION BY [Mth])
O estúdio de gerenciamento não parece muito feliz com isso. O erro desaparece quando eu removo a DISTINCTpalavra - chave, mas não será uma contagem distinta.
DISTINCTnão parece ser possível dentro das funções de partição. Como faço para encontrar a contagem distinta? Devo usar um método mais tradicional , como uma subconsulta correlacionada?
Analisando um pouco mais a fundo, talvez essas OVERfunções funcionem de maneira diferente do Oracle, de modo que não podem ser usadas SQL-Serverpara calcular totais corridos.
Eu adicionei um exemplo ao vivo aqui no SQLfiddle onde tento usar uma função de partição para calcular um total em execução.
COUNTcom emORDER BYvez dePARTITION BYestá mal definido em 2008. Estou surpreso que esteja permitindo que você tenha. Pela documentação , você não tem permissãoORDER BYpara uma função agregada.