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