J'essaye d'écrire ce qui suit afin d'obtenir un total courant de NumUsers distincts, comme ceci:
NumUsers = COUNT(DISTINCT [UserAccountKey]) OVER (PARTITION BY [Mth])
Le studio de gestion ne semble pas trop heureux à ce sujet. L'erreur disparaît lorsque je supprime le DISTINCTmot - clé, mais ce ne sera pas un décompte distinct.
DISTINCTne semble pas possible dans les fonctions de partition. Comment puis-je trouver le décompte distinct? Dois-je utiliser une méthode plus traditionnelle telle qu'une sous-requête corrélée?
En examinant cela un peu plus loin, peut-être que ces OVERfonctions fonctionnent différemment d'Oracle dans la mesure où elles ne peuvent pas être utilisées SQL-Serverpour calculer les totaux cumulés.
J'ai ajouté un exemple en direct ici sur SQLfiddle où j'essaie d'utiliser une fonction de partition pour calculer un total en cours.
COUNTavecORDER BYau lieu dePARTITION BYest mal défini en 2008. Je suis surpris que cela vous laisse du tout. Selon la documentation , vous n'êtes pas autorisé à utiliser uneORDER BYfonction d'agrégation.