Sto cercando di scrivere quanto segue per ottenere un totale parziale di NumUsers distinti, in questo modo:
NumUsers = COUNT(DISTINCT [UserAccountKey]) OVER (PARTITION BY [Mth])
Lo studio di gestione non sembra molto contento di questo. L'errore scompare quando rimuovo la DISTINCTparola chiave, ma non sarà un conteggio distinto.
DISTINCTnon sembra essere possibile all'interno delle funzioni di partizione. Come posso trovare il conteggio distinto? Uso un metodo più tradizionale come una sottoquery correlata?
Esaminando questo un po 'più in là, forse questi OVER funzioni funzionano in modo diverso da Oracle in quanto non possono essere utilizzate SQL-Serverper calcolare i totali correnti.
Ho aggiunto un esempio dal vivo qui su SQLfiddle in cui cerco di utilizzare una funzione di partizione per calcolare un totale parziale .
COUNTwithORDER BYinvece diPARTITION BYè mal definito nel 2008. Sono sorpreso che ti permetta di averlo. Secondo la documentazione , non è consentito l'usoORDER BYdi una funzione aggregata.