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 DISTINCT
mot - clé, mais ce ne sera pas un décompte distinct.
DISTINCT
ne 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 OVER
fonctions fonctionnent différemment d'Oracle dans la mesure où elles ne peuvent pas être utilisées SQL-Server
pour 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.
COUNT
avecORDER BY
au lieu dePARTITION BY
est mal défini en 2008. Je suis surpris que cela vous laisse du tout. Selon la documentation , vous n'êtes pas autorisé à utiliser uneORDER BY
fonction d'agrégation.