Я намагаюся написати наступне, щоб отримати загальну кількість різних NumUsers, наприклад так:
NumUsers = COUNT(DISTINCT [UserAccountKey]) OVER (PARTITION BY [Mth])
Студія управління здається не надто задоволеною цим. Помилка зникає, коли я вилучаю DISTINCTключове слово, але тоді це не буде вираженим підрахунком.
DISTINCTздається неможливим у межах функцій розділу. Як мені знайти пошук чіткого рахунку? Чи використовую я більш традиційний метод, такий як корельований підзапит?
Розглядаючи це трохи далі, можливо, ці OVERфункції працюють інакше, ніж Oracle, таким чином, що їх не можна використовувати SQL-Serverдля обчислення загальних підсумків.
Я додав приклад в реальному часі тут, на SQLfiddle, де я намагаюся використовувати функцію розділу для обчислення загальної суми.
COUNTз,ORDER BYа неPARTITION BYє погано визначеним у 2008 році. Я здивований, що це взагалі дозволяє вам це мати. Згідно з документацією , вам не дозволеноORDER BYвикористовувати сукупну функцію.